---
title: "Get all the comments on a video"
method: GET
path: "/channels/{channel_id}/videos/{video_id}/comments"
tags: ["Videos\\Comments"]
---

# Get all the comments on a video

`GET /channels/{channel_id}/videos/{video_id}/comments`

## Request

- Base URL: `https://api.vimeo.com`
- URL: `https://api.vimeo.com/channels/{channel_id}/videos/{video_id}/comments`
- Auth: OAuth 2
  - Authorization code: `/oauth/authorize`, token URL `/oauth/access_token`
  - Client credentials, token URL `/oauth/authorize/client`
  - Scopes: `create`, `delete`, `edit`, `email`, `interact`, `private`, `promo_codes`, `public`, `purchase`, `purchased`, `stats`, `upload`, `video_files`
- TypeScript: <https://skmtc.dev/vimeo/apis/vimeo-api/docs/channels/:channel_id/videos/:video_id/comments/get.ts> (a function with typed inputs; its response is checked against the schema)

This method returns all the comments on the specified video.

## Path parameters

- `channel_id` number, required
- `video_id` number, required

## Query parameters

- `direction` 'asc' | 'desc'
- `page` number
- `per_page` number

## Response `200`

The comments were returned.

- Comment[]
  - `created_on` string, required: The time in ISO 8601 format when the comment was posted.
  - `metadata` object, required
    - `connections` object, required
      - `replies` object, required: Information about this comment's replies.
        - `options` string[], required: An array of HTTP methods permitted on this URI.
        - `total` number, required: The total number of replies on this connection.
        - `uri` string, required: The API URI that resolves to the connection data.
  - `resource_key` string, required: The resource key string for the comment.
  - `text` string, required: The content of the comment.
  - `type` 'video', required: The Vimeo content to which the comment relates: Option descriptions: * `video` - The comment is about a video.
  - `uri` string, required: The unique identifier to access the comment resource.
  - `user` User, required
    - `account` 'basic' | 'business' | 'live_business' | 'live_premium' | 'live_pro' | 'plus' | 'pro' | 'pro_unlimited' | 'producer', required: The user's account type: Option descriptions: * `basic` - The user has a Vimeo Basic subscription. * `business` - The user has a Vimeo Business subscription. * `live_business` - The user has a Vimeo Business Live subscription. * `live_premium` - The user has a Vimeo Premium subscription. * `live_pro` - The user has a Vimeo PRO Live subscription. * `plus` - The user has a Vimeo Plus subscription. * `pro` - The user has a Vimeo Pro subscription. * `pro_unlimited` - The user has a Vimeo PRO Unlimited subscription. * `producer` - The user has a Vimeo Producer subscription.
    - `bio` string, nullable, required: The user's bio.
    - `content_filter` string[]: The user's content filters: Option descriptions: * `drugs` - Drugs or alcohol use. * `language` - Profanity or sexually suggestive content. * `nudity` - Nudity. * `safe` - Suitable for all audiences. * `unrated` - No rating. * `violence` - Violent or graphic content.
    - `created_time` string, required: The time in ISO 8601 format when the user account was created.
    - `email` string: The user's email address. This data requires a bearer token with the `email` scope.
    - `link` string, required: The absolute URL of this user's profile page.
    - `location` string, nullable, required: The user's location.
    - `metadata` object, required: The user's metadata.
      - `connections` object, required: The list of resource URIs related to the user.
        - `albums` object, required: Information about the albums created by this user.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of albums on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `appearances` object, required: Information about the appearances of this user in other videos.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of appearances on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `block` object, required: Information on the users that the current user has blocked. This data requires a bearer token with the `private` scope.
          - `options` string[], required: An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required: The total number of blocked users on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required: The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `categories` object, required: Information about this user's followed categories.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of categories on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `channels` object, required: Information about this user's subscribed channels.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of channels on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `feed` object, required: Information about this user's feed.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `folders` object, required: Information about this user's folders.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of folders on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `followers` object, required: Information about the user's followers.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of followers on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `following` object, required: Information about the users that the current user is following.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of users on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `groups` object, required: Information about the groups created by this user.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of groups on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `likes` object, required: Information about the videos that this user has liked.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of likes on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `moderated_channels` object, required: Information about the channels that this user moderates.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of channels on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `pictures` object, required: Information about this user's portraits.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of pictures on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `portfolios` object, required: Information about this user's portfolios.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of portfolios on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `recommended_channels` object, required: A collection of recommended channels for the current user to follow. This data requires a bearer token with the `private` scope.
          - `options` string[], required: An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required: The total number of channels on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required: The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `recommended_users` object, required: A Collection of recommended users for the current user to follow. This data requires a bearer token with the `private` scope.
          - `options` string[], required: An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required: The total number of users on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required: The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `shared` object, required: Information about the videos that have been shared with this user.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of videos on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `videos` object, required: Information about the videos uploaded by this user.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of videos on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `watched_videos` object, required: Information about the videos that this user has watched.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of videos on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
        - `watchlater` object, required: Information about the videos that this user wants to watch later.
          - `options` string[], required: An array of HTTP methods permitted on this URI.
          - `total` number, required: The total number of videos on this connection.
          - `uri` string, required: The API URI that resolves to the connection data.
      - `interactions` object, required
        - `add_privacy_user` object
          - `options` string[]: An array of the HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `uri` string: The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `block` object, required: Information related to the block status of this user.
          - `added` boolean, required: Whether a user is blocking the current user.
          - `added_time` string, nullable, required: The time in ISO 8601 format when the block occurred, or the null value if no block exists.
          - `options` string[], required: An array of the HTTP methods permitted on this URI.
          - `uri` string, required: The URI to block or unblock the user.
        - `follow` object, required: Information related to the followed status of this user.
          - `added` boolean, required: Whether a user is following the current user.
          - `options` string[], required: An array of the HTTP methods permitted on this URI.
          - `uri` string, required: The URI to follow the user.
        - `report` object, required: Information regarding where and how to report a user.
          - `options` string[], required: An array of the HTTP methods permitted on this URI.
          - `reason` string[], required: List of valid reasons for reporting a video.
          - `uri` string, required: The API URI that resolves to the connection data.
    - `name` string, required: The user's display name.
    - `pictures` Picture, required
      - `active` boolean, required: Whether this picture is the active picture for its parent resource.
      - `link` string: The upload URL for the picture. This field appears when you create the picture resource for the first time.
      - `resource_key` string, required: The picture's resource key string.
      - `sizes` object[], required: An array containing reference information about all available image files.
        - `height` number, nullable, required: The height of the image.
        - `link` string, required: The direct link to the image.
        - `link_with_play_button` string: The direct link to the image with a play button overlay.
        - `width` number, required: The width of the image.
      - `type` 'caution' | 'custom' | 'default', required: The type of the picture: Option descriptions: * `caution` - An image that is appropriate for all ages. * `custom` - A custom image for the video. * `default` - The default image for the video.
      - `uri` string, required: The picture's URI.
    - `preferences` object
      - `videos` object
        - `privacy` object
          - `add` boolean: Whether other users can add the user's videos.
          - `comments` 'anybody' | 'contacts' | 'nobody': The user's privacy preference for comments: Option descriptions: * `anybody` - Anyone can comment on the user's videos. * `contacts` - Only contacts can comment on the user's videos. * `nobody` - No one can comment on the user's videos.
          - `download` boolean: Whether other users can download the user's videos.
          - `embed` 'private' | 'public' | 'whitelist': The user's privacy preference for embeds: Option descriptions: * `private` - Only the user can embed their own videos. * `public` - Anyone can embed the user's videos. * `whitelist` - Only those on the whitelist can embed the user's videos.
          - `view` 'anybody' | 'contacts' | 'disable' | 'nobody' | 'password' | 'unlisted' | 'users': The user's privacy preference for views: Option descriptions: * `anybody` - Anyone can view the user's videos. * `contacts` - Only contacts can view the user's videos. * `disable` - Views are disabled for the user's videos. * `nobody` - No one except the user can view the user's videos. * `password` - Only those with the password can view the user's videos. * `unlisted` - Anybody can view the user's videos if they have a link. * `users` - Only other Vimeo members can view the user's videos.
    - `resource_key` string, required: The user's resource key string.
    - `upload_quota` object, required: Appears only when the user has upload access and is looking at their own user record.
      - `lifetime` object, required: Information about the user's lifetime upload usage.
        - `free` number, nullable, required: The number of bytes remaining in your lifetime maximum.
        - `max` number, nullable, required: The total number of bytes that you can upload across the lifetime of your account.
        - `used` number, nullable, required: The number of bytes that you've already uploaded against your lifetime limit.
      - `periodic` object, required: Information about the user's usage for the current period.
        - `free` number, nullable, required: The number of bytes remaining in your upload quota for the current period.
        - `max` number, nullable, required: The total number of bytes that you can upload per period.
        - `reset_date` string, nullable, required: The time in ISO 8601 format when your upload quota resets.
        - `used` number, nullable, required: The number of bytes that you've already uploaded against your quota in the current period.
      - `space` object, required: Information about the user's upload space remaining for the current period.
        - `free` number, required: The number of bytes remaining in your upload quota.
        - `max` number, nullable, required: The maximum number of bytes allotted to your upload quota.
        - `showing` 'lifetime' | 'periodic', required: Whether the values of the upload_quota.space fields are for the lifetime quota or the periodic quota.
        - `used` number, required: The number of bytes that you've already uploaded against your quota.
    - `uri` string, required: The user's canonical relative URI.
    - `websites` object[], required: The user's websites.
      - `description` string, nullable, required: The website's description.
      - `link` string, required: The URL of the website.
      - `name` string, nullable, required: The name of the website.

---

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