---
title: "Get Videos"
method: GET
path: "/v1/accounts/{{account_id}}/videos"
tags: ["Videos"]
---

# Get Videos

`GET /v1/accounts/{{account_id}}/videos`

## Request

- Base URL: `https://cms.api.brightcove.com`
- URL: `https://cms.api.brightcove.com/v1/accounts/{{account_id}}/videos`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://oauth.brightcove.com/v4/access_token` scopes: `video-cloud/video/read`

Gets a page of video objects

## Path parameters

- `account_id` string, required

## Query parameters

- `limit` integer
- `offset` integer
- `sort` 'name' | '-name' | 'reference_id' | '-reference_id' | 'created_at' | '-created_at' | 'published_at' | '-published_at' | 'updated_at' | '-updated_at' | 'schedule.starts_at' | '-schedule.ends_at' | 'state' | '-state' | 'plays_total' | '-plays_total' | 'plays_trailing_week' | '-plays_trailing_week'
- `q` string
- `query` string

## Headers

- `Content-Type` string, required
- `Authorization` string, required

## Response `200`

200

- Video[]
  - `ad_keys` string, nullable: string representing the ad key/value pairs assigned to the video. Key/value pairs are formatted as key=value and are separated by ampersands - can only be added on update, not creation
  - `clip_source_video_id` string: The ID of the source video that was clipped to produce this video or null if this video is not a clip of another video
  - `complete` boolean: whether the video has at least one rendition -Note: when you create a new video, the complete property is automatically set to false. As soon as one rendition exists for the video, the complete property will be automatically set to true. This does **not mean that all renditions are created and images and captions processed**. For the full status of ingestion, see [Dynamic Ingest API Notifications](/dynamic-ingest/general/notifications-dynamic-delivery-video-cloud.html)
  - `created_at` string: when the video was created
  - `created_by` User: information about who created or modified a video, if available
    - `email` string: the user's email address in Video Cloud
    - `id` string: Video Cloud system id of the user
    - `type` 'user' | 'api_key' | 'internal': The type of the updater, either: - `user` a user in Studio - `api-key` a user via the APIs - `internal` a Brightcove system or user
  - `cue_points` CuePoint[]: array of cue points - can be added on creation or update
    - `force_stop` boolean: Whether playback should be stopped when the cuepoint is reached
    - `metadata` string: optional metadata string (512 single-byte characters maximum)
    - `name` string: cue point name
    - `time` number, required: time of the cue point in seconds
    - `type` 'AD' | 'DATA', required: cue point type
  - `custom_fields` object
  - `delivery_type` 'remote' | 'dynamic_origin' | 'live_origin' | 'unknown': video delivery type: - `remote`: a remote asset - `dynamic_origin`: processed using the Dynamic Delivery ingest system - `live_origin`: a live stream from Brightcove Live - `unknown`: the delivery type could not be determined (may mean there are no playable renditions)
  - `description` string: video short description
  - `digital_master_id` string: asset id of the digital master
  - `drm_disabled` boolean: if true, the video is not DRM-packaged - applies to accounts that are enabled for DRM only
  - `duration` integer: video duration in milliseconds
  - `economics` 'AD_SUPPORTED' | 'FREE': whether video is `AD_SUPPORTED`
  - `folder_id` string: id of the folder that contains the video
  - `forensic_watermarking` 'ACTIVE' | 'UNAVAILABLE': Indicates whether the video has forensic watermarking possible values: - `ACTIVE` - the video was transcoded with forensic watermarking and should be used during delivery - `UNAVAILABLE` - the video was not transcoded with forensic watermarking support and can’t be delivered using it - `null` - the value is for forensic watermarking is not available for the account; in this case the field is not returned in API responses if the video was not ingested with forensic watermarking, this field will be set to `UNAVAILABLE` automatically; if the video was ingested or retranscoded with forensic watermarking, this field will be set to `ACTIVE` automatically
  - `geo` Geo: map of geo-filtering properties
    - `countries` string[], required: array of ISO 3166 list of 2-letter codes(https://www.iso.org/obp/ui/#home) (search for "country codes")
    - `exclude_countries` boolean, required: if true, country array is treated as a list of countries excluded from viewing
    - `restricted` boolean, required: whether geo-restriction is enabled for this video
  - `has_digital_master` boolean: whether video has an archived master than can be used for retranscoding
  - `id` string: video id
  - `images` VideoImages: map of image maps - the map name is in the form `label.language` where the label is one of `poster`, `thumbnail`, `portrait`, `square`, `wide` or `ultra-wide`, and the `language` is a language identifier such as 'en', 'de', or `ko`
  - `labels` string[]: Array of labels assigned to the video. See [Working with Labels](/cms/managing-videos/working-with-labels.html) for more information.
  - `link` Link: map of related link properties - can only be added on update, not creation
    - `text` string: text for the link
    - `url` string: URL for the link
  - `long_description` string: video long description - can only be added on update, not creation
  - `name` string: video title
  - `offline_enabled` boolean: whether video is enabled for offline viewing
  - `original_filename` string: the original file name for the uploaded video
  - `playback_rights_id` string: Associates specified EPA playback rights with video.
  - `projection` 'equirectangular', nullable: used for 360 videos
  - `published_at` string: start date-time of first activation in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format
  - `reference_id` string, nullable: video reference-id (must be unique within the account)
  - `schedule` Schedule: map of scheduling properties
    - `ends_at` string, nullable: 'End date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`'
    - `starts_at` string, nullable: 'Start date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`'
  - `sharing` Sharing: map of the sharing properties for the video
    - `by_external_acct` boolean: whether the video was shared from another account
    - `by_id` string: id of the account that shared the video; note that this field is populated only for the shared copy, not for the original video
    - `by_reference` boolean: whether the video is shared by reference
    - `source_id` string: id of the video in its original account; note that this field is populated only for the shared copy, not for the original video
    - `to_external_acct` boolean: whether the video is shared to another account
  - `state` 'ACTIVE' | 'INACTIVE' | 'PENDING' | 'DELETED': The state of the video: - ACTIVE: the video is playable - INACTIVE: the video is not playable - PENDING: - DELETED: the video has been deleted (within the past 10 days; after that, the API won't return the video)
  - `tags` string[]: array of tags - maximum characters per tag is 1000
  - `text_tracks` TextTrack[]: array of text tracks - can only be added on update, not creation
    - `default` boolean: whether this is the default track - should only be true for one text track
    - `id` string: System id for the text track
    - `kind` 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata' | 'transcripts': How the track is meant to be used: `subtitles`, `captions`, `descriptions`, `chapters`, `metadata`.
    - `label` string: label for the track
    - `mime_type` string: mime-type for the track
    - `src` string: URL for the .vtt file
    - `srclang` string: 2-letter language code, such as "en" or "ko"
    - `status` unknown
  - `transcripts` Transcript[]: array of transcription objects - can only be added on update, not creation
    - `id` string: System id for the text track
    - `account_id` string: The account id
    - `default` boolean: Whether the transcript is the default - note that if there are multi-language transcripts, there can be a default per language
    - `label` string: label for the track
    - `sources` string[]: sources for a client to retrieve the transcription
    - `src` string, required: URL for the transcription file
    - `srclang` string, required: 2-letter or 4-letter language code, such as `es` or `es-MX`
    - `status` 'draft' | 'published': Either `draft` (unavailable to viewers) or `published`
  - `updated_at` string: when the video was last modified
  - `updated_by` User: information about who created or modified a video, if available
    - `email` string: the user's email address in Video Cloud
    - `id` string: Video Cloud system id of the user
    - `type` 'user' | 'api_key' | 'internal': The type of the updater, either: - `user` a user in Studio - `api-key` a user via the APIs - `internal` a Brightcove system or user
  - `variants` unknown[]: Array of video variants
    - unknown

## Other responses

- `400`: INVALID_SORT: sort parameter specified and invalid field ILLEGAL_QUERY: The search string syntax was invalid - example
- `401`: UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token
- `403`: NOT_AVAILABLE: The resource you are requesting is unavailable - this may be a temporary condition while some kind of processing of the video is in progress, but if the message persists, contact
- `404`: RESOURCE_NOT_FOUND: Resource not found
- `429`: TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second
- `500`: UNKNOWN: Issue in Brightcove system; try again later. TIMEOUT: Server likely too busy; try again later.

## Changes

- **2024-07-01** `b3229d7d4d22`: 1 info
  - added the new optional `query` request parameter `query`
- **2024-05-14** `445c2ae548dc`: 1 warning, 1 info
  - deleted the `query` request parameter `query`
  - added the new optional `query` request parameter `q`
- **2023-05-18** `a9eaeb7cf510`: 1 info
  - removed the `static_origin` enum value from the `items/delivery_type` response property for the response status `200`
- **2023-04-29** `d5befff2511b`: 1 info
  - endpoint added
- **2023-04-28** `5285220c7df0`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/brightcovelearning/apis/brightcove-cms-api-reference/changes/v1/accounts/:{account_id}/videos/get.md)

---

[API](https://skmtc.dev/brightcovelearning/apis/brightcove-cms-api-reference.md) - [All operations](https://skmtc.dev/brightcovelearning/apis/brightcove-cms-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/brightcovelearning/apis/brightcove-cms-api-reference/revisions/1b6182a4560a?raw)
