> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mottostreaming.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get offer

> GetOffer

 Returns offer information by offer ID.



## OpenAPI

````yaml get /monetization/offers/v1/{offer_id}
openapi: 3.0.3
info:
  title: Studio API - Motto
  version: 0.0.0
servers:
  - url: https://api.mottostreaming.com
    description: Production server
security:
  - BearerAuth: []
tags:
  - name: AccountService
    description: Account management service
  - name: ActionConfigurationService
    description: Action configuration service definition
  - name: ActionSecretService
    description: Action type service definition
  - name: ActionService
    description: Action service definition
  - name: ActionTypeService
    description: Action type service definition
  - name: ActivityService
    description: Activity service definition
  - name: AdService
    description: Ad management service.
  - name: AnnotationService
    description: Annotation service definition
  - name: AnnotationSetService
    description: Annotation service definition
  - name: AnnotationTypeService
    description: Annotation service definition
  - name: AssetService
    description: Asset management service.
  - name: AuthService
    description: Auth service definition
  - name: BannerService
    description: Banner service definition
  - name: BannerV2Service_v2
    description: Banner service definition
  - name: CleengService
    description: CleengService service definition
  - name: ClipService
    description: ClipService is the service that handles Clip operations.
  - name: ConfigurationService
    description: >-
      Configuration management service. These configurations allow modifying the
      behavior of streams, uploads, simulcasts, etc.
  - name: ContentTypeService
    description: ContentType service definition
  - name: CreativeWorkService
    description: CreativeWork service definition
  - name: EntitlementService
    description: Entitlement service definition
  - name: EntityService
    description: Entity service definition
  - name: EventService
    description: Event service definition
  - name: FileService
    description: OTT files management.
  - name: IngestService
    description: Ingest management service.
  - name: IngestService_v2
    description: Ingest management service.
  - name: LiveStreamService
    description: LiveStream management service.
  - name: LiveStreamService_v2
    description: LiveStream management service.
  - name: OfferService
    description: Offer service definition
  - name: OrganizationService
    description: Organization management service.
  - name: PageService
    description: Page service definition
  - name: PlatformService
    description: Platform service definition
  - name: PlaylistService
    description: Playlist management service.
  - name: ProjectService
    description: Project management service.
  - name: SimulcastService
    description: Simulcast management service.
  - name: SlugService
    description: Slug service definition
  - name: SpiideoService
    description: SpiideoService service definition
  - name: StandingService
    description: Standing service definition
  - name: StitcherService
    description: StitcherService is the service that handles stitching operations.
  - name: StripeService
    description: StripeService service definition
  - name: SubscriptionService
    description: Subscription service definition
  - name: SubtitleService
    description: SubtitleService is the service that handles Subtitle operations.
  - name: TransactionService
    description: Transaction service definition
  - name: UploadService
    description: Upload management service.
  - name: UsageService
    description: The UsageService provides methods to retrieve usage data for SKUs.
  - name: UserService
    description: User management service
  - name: VODService
    description: VODService is the service that handles VOD operations.
  - name: VODService_v2
    description: VODService is the service that handles VOD operations.
  - name: VideoProtectionService
    description: VideoProtection management service.
  - name: VideoProtectionService_v2
    description: VideoProtection management service.
  - name: VideoService
    description: Video management service.
paths:
  /monetization/offers/v1/{offer_id}:
    get:
      tags:
        - OfferService
      description: |-
        GetOffer

         Returns offer information by offer ID.
      operationId: OfferService_GetOffer
      parameters:
        - name: offer_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/motto.monetization.offer.v1.GetOfferResponse
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
components:
  schemas:
    motto.monetization.offer.v1.GetOfferResponse:
      type: object
      properties:
        offer:
          $ref: '#/components/schemas/motto.monetization.offer.v1.Offer'
    google.rpc.Status:
      type: object
      properties:
        code:
          type: integer
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
          format: int32
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/google.protobuf.Any'
          description: >-
            A list of messages that carry the error details.  There is a common
            set of message types for APIs to use.
      description: >-
        The `Status` type defines a logical error model that is suitable for
        different programming environments, including REST APIs and RPC APIs. It
        is used by [gRPC](https://github.com/grpc). Each `Status` message
        contains three pieces of data: error code, error message, and error
        details. You can find out more about this error model and how to work
        with it in the [API Design
        Guide](https://cloud.google.com/apis/design/errors).
    motto.monetization.offer.v1.Offer:
      required:
        - project_id
        - name
        - localized_title
        - localized_description
      type: object
      properties:
        id:
          readOnly: true
          type: string
          description: System generated identifier for the offer.
        project_id:
          type: string
        name:
          type: string
          description: >-
            Name of the offer. This is an internal identifier and is not exposed
            to end users.
        cleeng_offer_id:
          type: string
        applies_to_all:
          type: boolean
          description: >-
            This offer applies to all videos in the project.


            Important: at most one of `applies_to_all`, `target`, `filter` may
            be set per request.
        target:
          allOf:
            - $ref: '#/components/schemas/motto.monetization.offer.v1.Target'
          description: >-
            This offer applies to a specific set of videos, as defined by the
            target.


            Important: at most one of `applies_to_all`, `target`, `filter` may
            be set per request.
        filter:
          allOf:
            - $ref: '#/components/schemas/motto.monetization.offer.v1.FilterTarget'
          description: >-
            This offer applies to a complex set of events and creative works, as
            defined by the filter target.


            Important: at most one of `applies_to_all`, `target`, `filter` may
            be set per request.
        localized_title:
          type: object
          additionalProperties:
            type: string
          description: |-
            A map of localized titles for this offer.
             The key is the language code (ISO 639 - set 1), e.g. "en", "de", "fr", etc. If you want to localize the text for different regions of the same language, you can add the country code (ISO 3166-1 alpha-2),
             e.g. "en-US", "en-GB", etc.
        localized_description:
          type: object
          additionalProperties:
            type: string
          description: |-
            A map of localized descriptions for this offer.
             The key is the language code (ISO 639 - set 1), e.g. "en", "de", "fr", etc. If you want to localize the text for different regions of the same language, you can add the country code (ISO 3166-1 alpha-2),
             e.g. "en-US", "en-GB", etc.
        localized_logo_asset_id:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of localized logos for this offer. These should be small
            images with a transparent background.
             The key is the language code (ISO 639 - set 1), e.g. "en", "de", "fr", etc. If you want to localize the text for different regions of the same language, you can add the country code (ISO 3166-1 alpha-2),
             e.g. "en-US", "en-GB", etc.
             If not all languages are provided, the default language will be used.
        localized_image_asset_id:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of localized images for this offer. These should be large,
            visually attractive images.
             The key is the language code (ISO 639 - set 1), e.g. "en", "de", "fr", etc. If you want to localize the text for different regions of the same language, you can add the country code (ISO 3166-1 alpha-2),
             e.g. "en-US", "en-GB", etc.
             If not all languages are provided, the default language will be used.
        offer_prices:
          type: array
          items:
            $ref: '#/components/schemas/motto.monetization.offer.v1.OfferPrice'
          description: >-
            An array of PriceOffers. When external_id is provided, pricing
            details are managed
             through a third-party system and this field should be empty.
        priority:
          type: string
          description: >-
            The priority of the offer. Offers with higher priority will be shown
            first to the end user.
        concurrency_limit:
          type: string
          description: >-
            The amount of devices that can concurrently view the content
            associated with this offer from a single account.
             If not provided, there is no limit.
        visibility:
          enum:
            - VISIBILITY_UNSPECIFIED
            - VISIBILITY_PUBLISHED
            - VISIBILITY_UNLISTED
            - VISIBILITY_HIDDEN
          type: string
          description: The visibility of the offer to end-users.
          format: enum
        video_protection_ruleset_id:
          type: string
          description: >-
            Optional. If there is a video protection ruleset that should be kept
            in sync with this offer, the ID of that ruleset can be provided
            here.
             This can be used to update the applicability of the ruleset when the `applies_to` field of the offer is updated.
             This is primarily useful to ensure that authentication and entitlement rules are enforced for content that sits in this offer.

             Note: the backend will NOT automatically apply these changes to the video protection ruleset.
             It is up to the client to apply the appropriate changes, using this field as a reference.
      description: >-
        Offer represents a collection of video content that end users can
        purchase. This can be used e.g. to define `Entitlement`s against.
    google.protobuf.Any:
      type: object
      properties:
        '@type':
          type: string
          description: The type of the serialized message.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message.
    motto.monetization.offer.v1.Target:
      type: object
      properties:
        entity_ids:
          type: array
          items:
            type: string
          description: >-
            The entities with which this offer is associated. If provided, all
            videos that are associated with these entities will be included in
            the offer.
        event_ids:
          type: array
          items:
            type: string
          description: >-
            The events with which this offer is associated. If provided, all
            videos that are associated with these events will be included in the
            offer.
        creative_work_ids:
          type: array
          items:
            type: string
          description: >-
            The creative works with which this offer is associated. If provided,
            all videos that are associated with these creative works will be
            included in the offer.
        video_ids:
          type: array
          items:
            type: string
          description: |-
            The video IDs of the videos that are associated with this offer.
             It is recommended to only use this when the videos are not associated with an event/creative work, or the event/creative work it is associated with
             has other videos with deviating configurations.
        content_start_time:
          type: string
          description: >-
            Any content defined by `entity_ids`, `event_ids` and
            `creative_work_ids` after `content_start_time` will be considered as
            part of the offer (as long as it is before `content_end_time`).
             If not provided, there is no lower time bound on the content.
          format: date-time
        content_end_time:
          type: string
          description: >-
            Any content defined by `entity_ids`, `event_ids` and
            `creative_work_ids` before `content_end_time` will be considered as
            part of the offer (as long as it is after `content_start_time`).
             If not provided, there is no upper time bound on the content.
          format: date-time
    motto.monetization.offer.v1.FilterTarget:
      type: object
      properties:
        filter_events:
          type: string
          description: >-
            The filter to apply to the events that should be targeted. To test
            your filter, you can use the `ListEvents` API
             on the CMS to see which results it includes.

             Important: an empty string means NO events are included (unlike in `ListEvents` API, where it includes all events).
             To target all events, pass the string `true`.
        filter_creative_works:
          type: string
          description: >-
            The filter to apply to the creative works that should be targeted.
            To test your filter, you can use the `ListCreativeWorks` API
             on the CMS to see which results it includes.

             Important: an empty string means NO creative works are included (unlike in `ListCreativeWorks` API, where it includes all events).
             To target all creative works, pass the string `true`.
    motto.monetization.offer.v1.OfferPrice:
      required:
        - id
        - msrp_price
        - price
        - billing_period
        - access_period
      type: object
      properties:
        id:
          type: string
          description: System generated identifier for the offer.
        msrp_price:
          allOf:
            - $ref: '#/components/schemas/google.type.Money'
          description: The MSRP price of the offer
        price:
          allOf:
            - $ref: '#/components/schemas/google.type.Money'
          description: |-
            The price of the offer.
             If the user is purchasing the Offer with this OfferPrice through a managed subscription, the final price is
             determined by the managed product price. However, you must still set the price here for display purposes, and
             because the currency may be used to resolve the correct managed product.
        geo_restrictions_disallow:
          allOf:
            - $ref: '#/components/schemas/motto.monetization.offer.v1.CountryCodes'
          description: >-
            Users are disallowed to purchase the video from these countries (and
            allowed from all others)


            Important: at most one of `geo_restrictions_disallow`,
            `geo_restrictions_allow` may be set per request.
        geo_restrictions_allow:
          allOf:
            - $ref: '#/components/schemas/motto.monetization.offer.v1.CountryCodes'
          description: >-
            Users are allowed to purchase the video from these countries (and
            disallowed from all others)


            Important: at most one of `geo_restrictions_disallow`,
            `geo_restrictions_allow` may be set per request.
        billing_period:
          enum:
            - BILLING_PERIOD_UNSPECIFIED
            - BILLING_PERIOD_ONE_TIME
            - BILLING_PERIOD_WEEKLY
            - BILLING_PERIOD_MONTHLY
            - BILLING_PERIOD_QUARTERLY
            - BILLING_PERIOD_YEARLY
          type: string
          description: |-
            Billing period
             If the user is purchasing the Offer with this OfferPrice through a managed subscription, this field may be overwritten
             by the managed product price. It is still important to be accurate, as it will be used to determine which API
             calls to make to the managed product. It will also be used for display purposes to the end user.
          format: enum
        access_period:
          enum:
            - ACCESS_PERIOD_UNSPECIFIED
            - ACCESS_PERIOD_FOREVER
            - ACCESS_PERIOD_24_HOURS
            - ACCESS_PERIOD_48_HOURS
            - ACCESS_PERIOD_7_DAYS
            - ACCESS_PERIOD_30_DAYS
            - ACCESS_PERIOD_90_DAYS
            - ACCESS_PERIOD_365_DAYS
          type: string
          description: |-
            Access period.
             If the user is purchasing the Offer with this OfferPrice through a managed subscription, this field may be overwritten
             by the managed product price. However, you must still set the access period here for display purposes to the end user.
          format: enum
        priority:
          type: string
          description: >-
            Priority of the offer. This determines the order in which prices are
            shown to the user (when more than one price is available).
             A higher number means the price is shown earlier.
        stripe_product_id:
          type: string
          description: >-
            A Stripe product ID. This is used to identify the product in Stripe,
            if one exists. This is only required if
             you want to use Stripe for recurring billing (i.e. using the Stripe subscriptions API).
        app_store_product_id:
          type: string
          description: >-
            An Apple App Store product ID. This is used to identify the product
            in the App Store, if one exists.
             This is typically a "consumable" product for pay-per-view content (single purchases of which there can be many),
             and "non-consumable" for season passes or subscriptions (purchases of which there can be only one of that type).
             Not needed if you do not want to offer in-app purchases on iOS/tvOS.
        play_store_sku:
          type: string
          description: >-
            A Google Play Store product ID. This is used to identify the product
            in the Play Store, if one exists.
             Not needed if you do not want to offer in-app purchases on Android or Android TV.
      description: OfferPrice represents the pricing information for an offer.
    google.type.Money:
      type: object
      properties:
        currency_code:
          type: string
          description: The three-letter currency code defined in ISO 4217.
        units:
          type: string
          description: |-
            The whole units of the amount.
             For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        nanos:
          type: integer
          description: |-
            Number of nano (10^-9) units of the amount.
             The value must be between -999,999,999 and +999,999,999 inclusive.
             If `units` is positive, `nanos` must be positive or zero.
             If `units` is zero, `nanos` can be positive, zero, or negative.
             If `units` is negative, `nanos` must be negative or zero.
             For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
          format: int32
      description: Represents an amount of money with its currency type.
    motto.monetization.offer.v1.CountryCodes:
      type: object
      properties:
        country_codes:
          type: array
          items:
            type: string
          description: >-
            A country code (ISO 3316-1 alpha-2:
            https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)
      description: A list of country codes
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````