---
title: "Get all the promotions on an On Demand page"
method: GET
path: "/ondemand/pages/{ondemand_id}/promotions"
tags: ["On Demand\\Promotions"]
---

# Get all the promotions on an On Demand page

`GET /ondemand/pages/{ondemand_id}/promotions`

## Request

- Base URL: `https://api.vimeo.com`
- URL: `https://api.vimeo.com/ondemand/pages/{ondemand_id}/promotions`
- Auth: OAuth 2
  - Authorization code: `/oauth/authorize`, token URL `/oauth/access_token`
  - Client credentials, token URL `/oauth/authorize/client`
  - Scopes: `promo_codes`
- TypeScript: <https://skmtc.dev/vimeo/apis/vimeo-api/docs/ondemand/pages/:ondemand_id/promotions/get.ts> (a function with typed inputs; its response is checked against the schema)

Information about this method appears below.

## Path parameters

- `ondemand_id` number, required

## Query parameters

- `filter` 'batch' | 'default' | 'single' | 'vip', required
- `page` number
- `per_page` number

## Response `200`

The promotions were returned.

- OnDemandPromotion
  - `access_type` 'default' | 'vip', required: The type of access that this promotion grants: Option descriptions: * `default` - Grants discounts on existing product offerings. * `vip` - Grants free access either to VOD content before it is released or to access types that aren't part of the existing product offerings.
  - `discount_type` 'dollars' | 'free' | 'percent', required: The type of discount for which this promotion can be used. Option descriptions: * `dollars` - The discount is a certain fixed amount. * `free` - The discount is the full purchase price. VIP access promotions always use this discount type. * `percent` - The discount is a certain percentage of the full price.
  - `download` boolean, required: Whether this promotion grants download access to On Demand content.
  - `label` string, nullable, required: The prefix string for batch codes, or the null value for single codes.
  - `metadata` object, required: The video's metadata.
    - `connections` object, required: A list of resource URIs related to the On Demand promotion.
      - `codes` object, required: Information about the codes associated with this promotion.
        - `options` string[], required: An array of HTTP methods permitted on this URI.
        - `total` number, required: The total number of uses on this connection.
        - `uri` string, required: The API URI that resolves to the connection data.
  - `percent_off` number, required: The percentage amount that is deducted from the product price.
  - `product_type` 'any' | 'buy' | 'buy_episode' | 'rent' | 'rent_episode' | 'subscribe', required: The type of product to which this promotion can be applied. Only `buy` and `rent` are available for the VIP access type: Option descriptions: * `any` - The promotion can be applied to any product. * `buy` - The promotion can be applied to a buyable single video. * `buy_episode` - The promotion can be applied to a buyable single episode. * `rent` - The promotion can be applied to a rentable single video. * `rent_episode` - The promotion can be applied to a rentable single episode. * `subscribe` - The promotion can be applied to a subscription.
  - `stream_period` '1_week' | '1_year' | '24_hour' | '30_days' | '3_month' | '48_hour' | '6_month' | '72_hour', nullable, required: The amount of time that the user has access to the VOD content after redeeming a promo code. Option descriptions: * `1_week` - Access lasts for one week. * `1_year` - Access lasts for one year. * `24_hour` - Access lasts for 24 hours. * `30_days` - Access lasts for 30 days. * `3_month` - Access lasts for 3 months. * `48_hour` - Access lasts for 48 hours. * `6_month` - Access lasts for 6 months. * `72_hour` - Access lasts for 72 hours.
  - `total` number, required: The total amount of times that this promotion can be used.
  - `type` 'batch' | 'batch_prefix' | 'single', required: The way in which this promotion can generate promo codes: Option descriptions: * `batch` - Provides many unique promo codes that can only be used once each. * `batch_prefix` - Similar to `batch`, except that all codes have a similar prefix string. This mode is deprecated, yet it may still appear for some users. * `single` - Provides a single promo code with many uses.
  - `uri` string, required: The promotion's canonical relative URI.

## Other responses

- `400`: The filter is invalid.
- `403`: You can't view promotions for an On Demand page that you don't own.
- `404`: No such On Demand page exists.

---

[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)
