# Source: https://developers.google.com/youtube/v3/docs/channels/list.md.txt

# Channels: list

**Note:** The `channel` resource's [statistics.subscriberCount](https://developers.google.com/youtube/v3/docs/channels#statistics.subscriberCount) property value has been updated to reflect a YouTube policy change that affects the way that subscriber counts are displayed. For more information, see [Revision History](https://developers.google.com/youtube/v3/revision_history#release_notes_09_10_2019) or the [YouTube Help Center](https://support.google.com/youtube/answer/6051134).
Returns a collection of zero or more **channel** resources that match the request criteria.

**Quota impact:** A call to this method has a [quota cost](https://developers.google.com/youtube/v3/getting-started#quota) of 1 unit.

## Common use cases

The list below shows common use cases for this method. Hover over a use case to see its description, or click on a use case to load sample parameter values in the APIs Explorer. You can open the [fullscreen APIs Explorer](https://developers.google.com/youtube/v3/docs/channels/list#) to see code samples that dynamically update to reflect the parameter values entered in the Explorer.

The table below shows common use cases for this method. You can click on a use case name to load sample parameter values in the APIs Explorer. Or you can see code samples for a use case in the fullscreen APIs Explorer by clicking on the code icon below a use case name. In the fullscreen UI, you can update parameter and property values and the code samples will dynamically update to reflect the values you enter.  
This method has one common use case, which is described below. The buttons below the description populate the APIs Explorer with sample values or open the fullscreen APIs Explorer to show code samples that use those values. The code samples also dynamically update if you change the values.

<br />

## Request

### HTTP request

```
GET https://www.googleapis.com/youtube/v3/channels
```

### Authorization

A request that retrieves the `auditDetails` part for a `channel` resource must provide an authorization token that contains the `https://www.googleapis.com/auth/youtubepartner-channel-audit` scope. In addition, any token that uses that scope must be revoked when the MCN decides to accept or reject the channel or within two weeks of the date that the token was issued.

### Parameters

The following table lists the parameters that this query supports. All of the parameters listed are query parameters.

|                                                                                                                                                                                                                                                                                                                                                                                                                                Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                 ||
|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| **Required parameters**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |||
| `part`                   | `string` The **part** parameter specifies a comma-separated list of one or more `channel` resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a `channel` resource, the `contentDetails` property contains other properties, such as the `uploads` properties. As such, if you set **part=contentDetails**, the API response will also contain all of those nested properties. The following list contains the `part` names that you can include in the parameter value: - `auditDetails` - `brandingSettings` - `contentDetails` - `contentOwnerDetails` - `id` - `localizations` - `snippet` - `statistics` - `status` - `topicDetails`                                                     |
| **Filters (specify exactly one of the following parameters)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |||
| `categoryId`             | `string` This parameter has been deprecated. The **categoryId** parameter specified a [YouTube guide category](https://developers.google.com/youtube/v3/docs/guideCategories) and could be used to request YouTube channels associated with that category.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `forHandle`              | `string` The **forHandle** parameter specifies a YouTube handle, thereby requesting the channel associated with that handle. The parameter value can be prepended with an `@` symbol. For example, to retrieve the resource for the "Google for Developers" channel, set the `forHandle` parameter value to either `GoogleDevelopers` or `@GoogleDevelopers`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `forUsername`            | `string` The **forUsername** parameter specifies a YouTube username, thereby requesting the channel associated with that username.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `id`                     | `string` The **id** parameter specifies a comma-separated list of the YouTube channel ID(s) for the resource(s) that are being retrieved. In a `channel` resource, the `id` property specifies the channel's YouTube channel ID.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `managedByMe`            | `boolean` This parameter can only be used in a properly [authorized request](https://developers.google.com/youtube/v3/guides/authentication). **Note:** This parameter is intended exclusively for YouTube content partners. Set this parameter's value to `true` to instruct the API to only return channels managed by the content owner that the **onBehalfOfContentOwner** parameter specifies. The user must be authenticated as a CMS account linked to the specified content owner and **onBehalfOfContentOwner** must be provided.                                                                                                                                                                                                                                                                                                      |
| `mine`                   | `boolean` This parameter can only be used in a properly [authorized request](https://developers.google.com/youtube/v3/guides/authentication). Set this parameter's value to `true` to instruct the API to only return channels owned by the authenticated user.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Optional parameters**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |||
| `hl`                     | `string` The **hl** parameter instructs the API to retrieve localized resource metadata for a specific [application language that the YouTube website supports](https://developers.google.com/youtube/v3/docs/i18nLanguages). The parameter value must be a language code included in the list returned by the [i18nLanguages.list](https://developers.google.com/youtube/v3/docs/i18nLanguages/list) method. If localized resource details are available in that language, the resource's `snippet.localized` object will contain the localized values. However, if localized details are not available, the `snippet.localized` object will contain resource details in the resource's [default language](https://developers.google.com/youtube/v3/docs/channels#snippet.defaultLanguage).                                                    |
| `maxResults`             | `unsigned integer` The **maxResults** parameter specifies the maximum number of items that should be returned in the result set. Acceptable values are `0` to `50`, inclusive. The default value is `5`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `onBehalfOfContentOwner` | `string` This parameter can only be used in a properly [authorized request](https://developers.google.com/youtube/v3/guides/authentication). **Note:** This parameter is intended exclusively for YouTube content partners. The **onBehalfOfContentOwner** parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner. |
| `pageToken`              | `string` The **pageToken** parameter identifies a specific page in the result set that should be returned. In an API response, the `nextPageToken` and `prevPageToken` properties identify other pages that could be retrieved.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

### Request body

Do not provide a request body when calling this method.

## Response

If successful, this method returns a response body with the following structure:  

```objective-c
{
  "kind": "youtube#channelListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    channel Resource
  ]
}
```

### 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#channelListResponse`.                                                                                                                                                                                                                                                   |
| `etag`                    | `etag` The Etag of this resource.                                                                                                                                                                                                                                                                                                               |
| `nextPageToken`           | `string` The token that can be used as the value of the `pageToken` parameter to retrieve the next page in the result set.                                                                                                                                                                                                                      |
| `prevPageToken`           | `string` The token that can be used as the value of the `pageToken` parameter to retrieve the previous page in the result set. Note that this property is not included in the API response if the corresponding API request set the [managedByMe](https://developers.google.com/youtube/v3/docs/channels/list#managedByMe) parameter to `true`. |
| `pageInfo`                | `object` The `pageInfo` object encapsulates paging information for the result set.                                                                                                                                                                                                                                                              |
| pageInfo.`totalResults`   | `integer` The total number of results in the result set.                                                                                                                                                                                                                                                                                        |
| pageInfo.`resultsPerPage` | `integer` The number of results included in the API response.                                                                                                                                                                                                                                                                                   |
| `items[]`                 | `list` A list of channels that match the request criteria.                                                                                                                                                                                                                                                                                      |

## Errors

The following table identifies error messages that the API could return in response to a call to this method. For more details, see [YouTube Data API - Errors](https://developers.google.com/youtube/v3/docs/errors).

|     Error type     |    Error detail    |                                                                                                                              Description                                                                                                                               |
|--------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `badRequest (400)` | `invalidCriteria`  | A maximum of one of the following filters may be specified:`id`, `categoryId`, `mine`, `managedByMe`, `forHandle`, `forUsername`. In case of content owner authentication via the `onBehalfOfContentOwner` parameter, only the `id` or `managedByMe` may be specified. |
| `forbidden (403)`  | `channelForbidden` | The channel specified by the `id` parameter does not support the request or the request is not properly authorized.                                                                                                                                                    |
| `notFound (404)`   | `categoryNotFound` | The category identified by the `categoryId` parameter cannot be found. Use the [guideCategories.list](https://developers.google.com/youtube/v3/docs/guideCategories/list) method to retrieve a list of valid values.                                                   |
| `notFound (404)`   | `channelNotFound`  | The channel specified in the `id` parameter cannot be found.                                                                                                                                                                                                           |

## Try it!

Use the APIs Explorer to call this API and see the API request and response.