This section provides the details of the content markup properties for the
`RadioBroadcastService` entity type. For complete details, see the
[Full feed example](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#full_feed_example).

> [!NOTE]
> **Note:** Localized texts  
> If you provide localized texts in different languages for text properties like `name`, `alternateName`, `description`, and `slogan`, see the examples in the [multiple regions and languages](https://developers.google.com/actions/media/reference/feed-examples/listen-actions-examples#multiple_regions_and_languages) section to correctly mark up the language of the text.

## Specification table

| Property | Expected type | Description |
|---|---|---|
| `@context` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `["http://schema.googleapis.com", {"@language": "xx"}]`, where `xx` represents the language of the strings in the feed. Each root entity context must have its `@language` set to the appropriate language code, and in [BCP 47 format](http://tools.ietf.org/html/bcp47). For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle or dub language is in English. |
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `RadioBroadcastService`. |
| `@id` | [`URL`](http://schema.org/URL) | **Required** - The content's identifier in URI format; for example, *https://example.com/1234abc* . `@id` must meet the following requirements: - Globally unique across your catalog - Static; The ID should be stable and not change over time (even if the url property of the show changes). It will be treated as an opaque string and does not have to be a working link. - In the form of Unified Resource Identifier (URI) - The domain used for the @id value must be owned by your organization. Because an entity's `url` meets all the requirements as an identifier, we recommend you use an entity's `url` as `@id`. See the [Identifier](https://developers.google.com/actions/media/collect-information/collect-the-id-url-and-name#identifier) section for more details. |
| `url` | [`URL`](http://schema.org/URL) | **Required:** The content's [Canonical URL](https://developers.google.com/actions/media/collect-information/collect-the-id-url-and-name#canonical_url), which supplies information about the radio station. The `url` property must meet the following requirements: - It must be globally unique. - It must contain a live canonical URL that Google can crawl. - It must point to a content description page that's not blocked by a paywall. > [!NOTE] > **Note:** `url` is different from the deep link that's used to play the content. The target object's `urlTemplate` property supplies the deep link instead. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The official name of the radio station. There must be only one official name per language. For example, "WXKS FM." Use an array to list the names in different languages. For an example, see [Multiple regions and languages](https://developers.google.com/actions/media/reference/feed-examples/listen-actions-examples#multiple_regions_and_languages). |
| `alternateName` | [`Text`](http://schema.org/Text) | Alternate names that help users identify the radio station. This property must be legitimate alternate names for a station, not keywords to influence triggering. For keywords, use the `keywords` property instead. Use an array to list the names in different languages. For an example, see [Multiple regions and languages](https://developers.google.com/actions/media/reference/feed-examples/listen-actions-examples#multiple_regions_and_languages). |
| `callSign` | [`Text`](http://schema.org/Text) | **Required if applicable:** The official government-issued callsign of the radio station. For example, "KQEI-FM." For North American radio stations, this property is required. For regions where callsigns aren't commonly used, this is optional. |
| `broadcastDisplayName` | [`Text`](http://schema.org/Text) | **Required:** The display names or brandings of the radio station. For example, "Fake Radio 105." The values help users identify this radio station in their queries, in addition to other key information such as callsign and name. |
| `description` | [`Text`](http://schema.org/Text) | **Required:** A brief description of the radio station. This property has a 300-character limit. Use an array to mark up the description in multiple languages. For an example, see [Multiple regions and languages](https://developers.google.com/actions/media/reference/feed-examples/listen-actions-examples#multiple_regions_and_languages). |
| `slogan` | [`Text`](http://schema.org/Text) | Slogan of the radio station. For example, "Google's number one fictional music radio station." |
| `logo` | [`ImageObject`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#imageobject_logo) | A logo image of the station. Provide the highest resolution available. The format must be either JPEG or PNG. For details and examples, see the [ImageObject](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#imageobject_logo) section. |
| `broadcastFrequency` | [`BroadcastFrequencySpecification`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#broadcastfrequencyspecification_broadcastfrequency) | **Required:** The frequency specification of the radio station. For terrestrial AM/FM radio stations, this property is required. For online-only streams, the value must be set to the `INTERNET_STREAM` string. For details and examples, see the [BroadcastFrequencySpecification](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#broadcastfrequencyspecification_broadcastfrequency) section. |
| `areaServed` | [`City, State, Country, or AdministrativeArea`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#city_state_country_administrativearea_areaserved) | **Required:** The primary geographic area targeted by the radio station. Use this property to select the most appropriate station among a network of affiliated, similarly named stations. For example, use it to select a nationally broadcast radio service with local affiliates. The suggested format is <var translate="no">city, (optional) state, country</var>. For details and examples, see the [City, State, Country, AdministrativeArea](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#city_state_country_administrativearea_areaserved) section. |
| `broadcastAffiliateOf` | [`Organization`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#organization_broadcaster_or_broadcastaffiliateof) | **Required if applicable:** The affiliate that the radio station is a member of, or the affiliate that provides the content that's broadcast on the radio station. For example, "NPR," "PRI," or "PBS." If the radio station isn't part of any affiliation, this property isn't required. For details and examples, see the [Organization](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#organization_broadcaster_or_broadcastaffiliateof) section. |
| `broadcaster` | [`Organization`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#organization_broadcaster_or_broadcastaffiliateof) | **Required:** The organization who owns, runs, and operates the radio station. For details and examples, see the [Organization](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#organization_broadcaster_or_broadcastaffiliateof) section. |
| `parentService` | [`RadioBroadcastService`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#radiobroadcastservice_parentservice) | **Required if applicable:** This property is only required when the radio station is a repeater or translator. It represents the original radio station that the repeater or translator relays. For details and examples, see the [RadioBroadcastService](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#radiobroadcastservice_parentservice) section. |
| `potentialAction` | [`ListenAction`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#listenaction_potentialaction) | **Required:** The Action that's triggered for users in order to listen to the radio station. For details, see the [ListenAction](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#listenaction_potentialaction) section. |
| `popularityScore` | [`PopularityScoreSpecification`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#popularityscorespecification_popularityscore) | **Highly Recommended [Why?](https://developers.google.com/actions/media/collect-information/collect-the-metadata)** A score that Google uses, plus other signals, to determine which media to play for users. This score represents the popularity of the content in relation to other content in your catalog. Therefore, the score's scale must be consistent across your feeds, and all the entities in your catalog. By default, an entity's popularity score is set to `0`. |
| `inLanguage` | [`Text`](http://schema.org/Text) | The language of the content that's broadcast on the radio station. The value must be a language code in [BCP 47 format](http://tools.ietf.org/html/bcp47). Use this value to fulfill user queries that request contents in a specific language. If the station broadcasts in different languages at different times, just list the primary language. |
| `keywords` | [`Text`](http://schema.org/Text) | A list of keywords associated with the radio station. Use these keywords to expand the user queries that trigger the radio station. For example, "news," "sports," or "rock." |
| `identifier` | [`PropertyValue`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#propertyvalue_identifier) | **Highly Recommended [Why?](https://developers.google.com/actions/media/collect-information/collect-the-metadata)** - The external ID or another ID that unambiguously identifies this entity. Multiple identifiers are allowed. For details, see the [Identifier properties](https://developers.google.com/actions/media/reference/data-specification/watch-actions-common-specification#identifier_properties) section. |
| `sameAs` | [`URL`](http://schema.org/URL) | The URL of a reference web page that unambiguously indicates the item's identity. For example, a Wikipedia page for the broadcast service. |

## Entity-type property references

The following are entity-types and their property references.

### BroadcastFrequencySpecification

The `BroadcastFrequencySpecification` entity-type is associated with the
`broadcastfrequency` property.

The `BroadcastFrequencySpecification` entity-type is used to identify the radio
station by its frequency. In the case of digital radio, the frequency channel
might carry multiple sub-channels with different programs. In those cases, the
`broadcastSubChannel` value is used to locate the target radio station within
the frequency channel.

For internet-only radio stations, the `BroadcastFrequencySpecification` object
isn't needed, so use the string value `INTERNET_STREAM` instead.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `BroadcastFrequencySpecification`. |
| `broadcastFrequencyValue` | [`Text`](http://schema.org/Text) | **Required:** The digit part of the frequency. For example, "89.3." For Digital Audio Broadcasting (DAB) stations, this must be the block number. For example, "12A." |
| `broadcastSignalModulation` | [`Text`](http://schema.org/Text) | **Required:** The signal modulation part of the frequency. The value must be one of: "FM", "AM", "HD", "DAB" or "DAB+". |
| `broadcastSubChannel` | [`Text`](http://schema.org/Text) | **Required if applicable:** The subchannel in the case of digital radio. For DAB and DAB+ stations, this value is the service ID. For example, "HD1"--"HD8" are possible values for HD radio, and "C8D8" is a possible value for DAB. |

The following are `BroadcastFrequencySpecification` examples:

### FM (HD)

    "broadcastFrequency": {
      "@type": "BroadcastFrequencySpecification",
      "broadcastFrequencyValue": "89.3",
      "broadcastSignalModulation": "FM",
      "broadcastSubChannel": "HD1"
    },

### AM

    "broadcastFrequency": {
      "@type": "BroadcastFrequencySpecification",
      "broadcastFrequencyValue": "1010",
      "broadcastSignalModulation": "AM",
    },

### DAB

    "broadcastFrequency": {
      "@type": "BroadcastFrequencySpecification",
      "broadcastFrequencyValue": "12B",
      "broadcastSignalModulation": "DAB",
       "broadcastSubChannel": "C8D8"
    },

### Internet-Only

    "broadcastFrequency": "INTERNET_STREAM",

### Organization

The `Organization` entity-type is associated with the `broadcaster` or
`broadcastAffiliateOf` properties.

In the `RadioBroadcastService` specification, the `Organization` type is used
for both `broadcaster` and `broadcastAffiliateOf` properties.

> [!NOTE]
> **Note:** Choose the right value.  
> The `broadcaster` property must be the organizations that own or operate the station. In most cases, this property is the company that owns the radio station.  
>
> The `broadcastAffiliateOf` property must be one or more of the radio networks who are affiliates and provide the content of the programs that are broadcast.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `Organization`. |
| `@id` | [`URL`](http://schema.org/URL) | **Required:** A globally unique ID for the organization that's in a URI format. The ID must be stable and not change over time. It's treated as an opaque string and doesn't have to be a working link. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The name of the organization. |
| `sameAs` | [`URL`](http://schema.org/URL) | This property is a URL to a reference web page that unambiguously identifies the organization. For example, a Wikipedia page for the organization, or the organization's official website. |

The following are `Organization` examples:

### SINGLE

    "broadcaster": {
      "@type": "Organization",
      "@id": "https://www.tjradio.org/broadcasters/billyradio",
      "sameAs": "https://www.billyradio-example.org/",
      "name": "Billy Radio Inc"
    },

### MULTIPLE OWNERS

    "broadcaster": [
      {
        "@type": "Organization",
        "@id": "https://www.tjradio.org/broadcasters/billyradio"
        "name": "Billy Radio Inc"
        "sameAs": "https://www.billyradio-example.org/"
      },
      {
        "@type": "Organization",
        "@id": "https://www.tjradio.org/broadcasters/Gmusic"
        "name": "Gmusic",
      }
    ],

### MULTIPLE NETWORKS

    "broadcastAffiliateOf": [
      {
        "@type": "Organization",
        "@id": "https://www.tjradio.org/networks/npr",
        "name": "NPR",
        "sameAs": "https://en.wikipedia.org/wiki/NPR"
      },
      {
        "@type": "Organization",
        "@id": "https://www.tjradio.org/networks/pri",
        "name": "PRI",
        "sameAs": "https://www.pri.org/"
      }
    ],

### RadioBroadcastService

The `RadioBroadcastService` entity-type is associated with the `parentService`
property.

The `parentService` property is used for a repeater or translator station to
indicate its parent station.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `RadioBroadcastService`. |
| `@id` | [`URL`](http://schema.org/URL) | **Required:** A globally unique ID in a URL format that represents the parent radio station. If the parent radio station is also included in your feed as a separate entity, ensure that both IDs are the same. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The name of the parent radio station. |
| `sameAs` | [`URL`](http://schema.org/URL) | The URL to a reference web page that unambiguously identifies the parent station. For example, a Wikipedia page for the parent station. |

The following is a`RadioBroadcastService` example:

      "parentService": {
        "@type": "RadioBroadcastService",
        "@id": "https://www.tjradio.org/stations?id=10",
        "name": "GQED-FM",
        "sameAs": "https://en.vikibedia.org/wiki/GQED-FM"
      },

### ImageObject

The `ImageObject` entity-type is associated with the `logo` property.

The `logo` property is used to provide the logo image for the given radio station. These images are displayed alongside content as a deep link for a given radio entity.

| Property | Expected Type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `ImageObject`. |
| `height` | [`Integer`](http://schema.org/Integer) | Height of the image in pixels. |
| `width` | [`Integer`](http://schema.org/Integer) | Width of the image in pixels. |
| `contentUrl` | [`URL`](http://schema.org/URL) | **Required:** A URL where the image can be fetched. |
| `regionsAllowed` | [`Country`](http://schema.org/Country) | The countries where the media is allowed. If the property isn't specified, then it's assumed that the image is allowed to be displayed in all locales. To submit different images per region, add multiple `ImageObject` types, each with its own set of countries and a corresponding image URL. |

#### Country

The `Country` entity-type is associated with the `logo.regionsAllowed` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | Always set this property to `Country`. |
| `name` | [`Text`](http://schema.org/Text) | The ISO 3166-1 alpha-2. For example, "GB" or "US." |

The following are `ImageObject`examples:

### UNIVERSAL LOGO

    "logo": {
      "@type": "ImageObject",
      "height": 100,
      "width": 800,
      "contentUrl": "http://www.foo.com/img/67890.jpg",
    },

### LOGO BY COUNTRY

    "logo": [
      {
        "@type": "ImageObject",
        "height": 100,
        "width": 800,
        "contentUrl": "http://www.foo.com/img/67890.jpg",
        "regionsAllowed": [
          {
            "@type": "Country",
            "name": "US"
          },
          {
            "@type": "Country",
            "name": "GB"
          }
        ]
      },
      {
        "@type": "ImageObject",
        "height": 100,
        "width": 800,
        "contentUrl": "http://www.foo.com/img/12345.jpg",
        "regionsAllowed": [
          {
            "@type": "Country",
            "name": "IN"
          },
          {
            "@type": "Country",
            "name": "PK"
          }
        ]
      },
    ],

### PropertyValue

The `PropertyValue` entity-type is associated with the `identifier` property.

If you use a third-party ID system for your content, such as the Gracenote IDs
(TMS), then the ID can be provided by the `identifier` property. This improves
the accuracy of Google's reconciliation of your radio stations.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `PropertyValue`. |
| `propertyID` | [`Text`](http://schema.org/Text) | **Required:** The type of specified ID. We support the following ID types: - `TMS_ROOT_ID`: The Gracenote IDs (TMS) Root ID. For example, "15829." - `TMS_ID`: The Gracenote IDs (TMS) Variant ID. For example, "MV000398520000." - `WIKIDATA_ID`: The WikiData ID. For example, "Q795598." |
| `value` | [`Text`](http://schema.org/Text) | The URL to a reference web page that unambiguously identifies the parent station. For example, a Wikipedia page for the parent station. |

The following is a `PropertyValue` example:

      "identifier": {
        "@type": "PropertyValue",
        "propertyID": "WIKIDATA_ID",
        "value": "Q795598"
      },

### PopularityScoreSpecification

The `PopularityScoreSpecification` entity-type is associated with the
`popularityScore` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `PopularityScoreSpecification`. |
| `value` | [`Number`](http://schema.org/Number) | **Required:** A positive numeric value that's compared with other entities from your catalog. The bigger number represents the higher popularity. |
| `eligibleRegion` | [`Country`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#country_opularityscore_eligibleregion) | A country or a list of the regions to which the popularity score is applicable. If the popularity score is globally applicable, simply use `earth` as the text value. If specific regions need to be listed, use the `Country` type. If this property is left out, the `eligibleRegion` defaults to `earth`. |

#### Country

The `Country` entity-type is associated with the
`popularityScore.eligibleRegion` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `Country`. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The ISO 3166-1 alpha-2. For example, "GB" or "US." |

The following are `PopularityScoreSpecification` examples:

### GLOBAL POPULARITY

    "popularityScore": {
      "@type": "PopularityScoreSpecification",
      "value": 4.3,
      "eligibleRegion": "Earth"
    },

### COUNTRY-SPECIFIC

    "popularityScore": {
      "@type": "PopularityScoreSpecification",
      "value": 2,
      "eligibleRegion": {
        "@type": "Country",
        "name": "US"
      }
    },

### City, State, Country, AdministrativeArea

The `City`, `State`, `Country`, and `AdministrativeArea` entity-types are
associated with the `areaServed` property.

The `areaServed` property helps you select the most appropriate station based on
the user's location information. Examples of location information are user
queries such as "a radio station near me" or "local news radio."

> [!NOTE]
> **Note:** This property differs from `eligibleRegion`, which specifies the boundaries of where users are permitted to listen to the station.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to one of the following entity types: `City`,`State`, `Country`, or `AdministrativeArea`. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The name of the city, state, country, or area. Provide the most granular region. Also, provide the containing chain. Use the following format: <var translate="no">city, state, country</var>. |

The following are `areaServed` examples:

### CITY

    "areaServed": {
      "@type": "City",
      "name": "North Highlands, CA, US"
    },

### STATE

    "areaServed": [
      {
        "@type": "State",
        "name": "California, US"
      },
      {
        "@type": "State",
        "name": "Nevada, US"
      }
    ],

### COUNTRY

    "areaServed": [
      {
        "@type": "Country",
        "name": "US"
      },
      {
        "@type": "Country",
        "name": "Australia"
      }
    ],

### ADMINISTRATIVEAREA

    "areaServed": [
      {
        "@type": "AdministrativeArea",
        "name": "Cape Cod, Massachusetts, US"
      }
    ],

### ListenAction

The `ListenAction` entity-type is associated with the `potentialAction` property.

The `ListenAction` property defines your deep links for playback. It also defines
the criteria for the users to access the content. For example, `geo/chronal/login/subscription status`.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `ListenAction`. |
| `target` | [`EntryPoint`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#entypoint_potentialAction_target) | **Required:** The specifications of your deep link. It includes the supported platform information. There can be multiple `EntryPoint` entity-types to define different deep links for different platform sets. |
| `actionAccessibilityRequirement` | [`ActionAccessSpecification`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#actionAccessspecification_potentialaction_actionaccessibilityrequirement) | **Required:** The definition of user requirements to access this entity. If multiple `ActionAccessSpecification` entity-types are present, a user that matches *any* of the specification criteria are able to access the content. |

#### EntryPoint

The `EntryPoint` entity-type is associated with the `potentialAction.target`
property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `EntryPoint`. |
| `urlTemplate` | [`Text`](http://schema.org/Text) | **Required:** The link that initiates the playback of your content. |
| `actionPlatform` | [`Text`](http://schema.org/Text) | **Required:** The platforms that the deep link is valid for. The following are possible values: - `http://schema.org/DesktopWebPlatform` - `http://schema.org/MobileWebPlatform` - `http://schema.org/AndroidPlatform` - `http://schema.org/AndroidTVPlatform` - `http://schema.org/IOSPlatform` - `http://schema.googleapis.com/GoogleAudioCast` - `http://schema.googleapis.com/GoogleVideoCast` |

#### ActionAccessSpecification

The `ActionAccessSpecification` entity-type is associated with the
`potentialAction.actionAccessibilityRequirement` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `ActionAccessSpecification`. |
| `category` | [`Text`](http://schema.org/Text) | **Required:** The type of access requirement. This must be one of the following values: - `nologinrequired`: This action is available to the user with no purchase or login needed to access content. - `free`: This action is available with no purchase or paid subscription required of the user. The action still requires users to sign in. - `subscription`: This action is included with a paid subscription to your service. |
| `availabilityStarts` | [`DateTime`](http://schema.org/DateTime) | The start time of the availability window. Use this property to control the exact time when this content is available to users. |
| `availabilityEnds` | [`DateTime`](http://schema.org/DateTime) | The end time of the availability window. Use this property to control the exact time when this content is no longer available to users. |
| `eligibleRegion` | [`Country`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#country_potentialaction_actionaccessibilityrequirement_eligibleregion) | The country that's eligible for the `Offer`. Use this property to control the country or region where this content should or shouldn't be available. |
| `requiresSubscription` | [`MediaSubscription`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#mediasubscription_potentialaction_actionaccessibilityrequirement_requiressubscription) | The subscription package required to access the content. If your service offers multiple subscription packages, this property is required. If your service is free, or there's only a single tier of subscription service, then you can skip this property. |

##### Country

The `Country` entity-type is associated with the
`potentialAction.actionAccessibilityRequirement.eligibleRegion` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `Country`. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The ISO 3166-1 alpha-2 country code. |

##### MediaSubscription

The `MediaSubscription` entity-type is associated with the
`potentialAction.actionAccessibilityRequirement.requiresSubscription` property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `MediaSubscription`. |
| `@id` | [`Text`](http://schema.org/Text) | **Required:** A globally unique ID for the subscription package in a URI format. The ID must be stable and not change over time. It's treated as an opaque string and doesn't have to be a working link. |
| `name` | [`Text`](http://schema.org/Text) | **Required:** The name of the subscription package. For example, "G-Radio Premium" or "A-Radio Basic." |
| `expectsAcceptanceOf` | [`Offer`](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#offer_potentialaction_actionaccessibilityrequirement_requiressubscription_expectsacceptanceof) | The `Offer` type associated with the purchase of the Media Subscription. This property is used to express the price of the subscription. |

###### Offer

The `Offer` entity-type is associated with the
`potentialAction.actionAccessibilityRequirement.requiresSubscription.expectsAcceptanceOf`
property.

| Property | Expected type | Description |
|---|---|---|
| `@type` | [`Text`](http://schema.org/Text) | **Required:** Always set this property to `Offer`. |
| `price` | [`Number`](http://schema.org/Number) | **Required:** The price of the subscription. |
| `priceCurrency` | [`Text`](http://schema.org/Text) | **Required:** The currency of the price in a three-letter ISO 4217 format. |
| `seller` | [`Organization`](http://schema.org/Organization) | The organization that offers the subscription or purchase of the action. Use the same schema as described in the `Organization` section. |

The following are `ListenAction` examples:

### UNIVERSAL DEEP LINK

    "potentialAction": {
        "@type": "ListenAction",
        "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjradio.org/?streamStationId=170",
            "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/MobileWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/AndroidTVPlatform",
                "http://schema.org/IOSPlatform",
                "http://schema.googleapis.com/GoogleAudioCast",
                "http://schema.googleapis.com/GoogleVideoCast"
            ]
        },
        "actionAccessibilityRequirement": {
            "@type": "ActionAccessSpecification",
            "category": "nologinrequired",
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": {
                "@type": "Country",
                "name": "US"
            }
        }
    },

### PLATFORM SPECIFIC

    "potentialAction": {
        "@type": "ListenAction",
        "target": [
            {
                "@type": "EntryPoint",
                "urlTemplate": "https://www.tjradio.org/?streamStationId=170",
                "actionPlatform": [
                    "http://schema.org/DesktopWebPlatform",
                    "http://schema.org/MobileWebPlatform",
                    "http://schema.org/AndroidPlatform",
                    "http://schema.org/AndroidTVPlatform",
                    "http://schema.org/IOSPlatform"
                ]
            },
            {
                "@type": "EntryPoint",
                "urlTemplate": "https://www.tjradio.org/castlink?streamStationId=170",
                "actionPlatform": [
                    "http://schema.googleapis.com/GoogleAudioCast",
                    "http://schema.googleapis.com/GoogleVideoCast"
                ]
            }
        ],
        "actionAccessibilityRequirement": [
            {
                "@type": "ActionAccessSpecification",
                "category": "nologinrequired",
                "availabilityStarts": "2018-04-01T11:01:00-04:00",
                "availabilityEnds": "2018-06-30T23:59:00-04:00",
                "eligibleRegion": [
                    {
                        "@type": "Country",
                        "name": "IN"
                    },
                    {
                        "@type": "Country",
                        "name": "GB"
                    }
                ]
            },
            {
                "@type": "ActionAccessSpecification",
                "category": "subscription",
                "requiresSubscription": {
                    "@type": "MediaSubscription",
                    "@id": "http://www.example.com/packages/basic-pack",
                    "name": "G-Radio Basic Pack",
                    "expectsAcceptanceOf": {
                        "@type": "Offer",
                        "price": 8.99,
                        "priceCurrency": "USD"
                    }
                },
                "availabilityStarts": "2018-04-01T11:01:00-04:00",
                "availabilityEnds": "2018-06-30T23:59:00-04:00",
                "eligibleRegion": {
                    "@type": "Country",
                    "name": "US"
                }
            }
        ]
    },

## Full feed example

In this full feed example, we present a hypothetical radio data provider: TJ_RADIO.
TJ_RADIO provides us with listen actions for radio data, along with the affiliation and ownership information.
In this feed, 3 radio networks (provide content to affiliate stations) are presented GPR, GRI and G-music.
Additionally, 3 radio stations are presented: GQED, GQEI and G-music.

- GQED is owned by GQED Inc and GPCB, two separate organizations. Also, GQED is affiliated to GPR, as it broadcasts some of the content created by GPR and GPI.
- GQEI is owned by GQED Inc and GPCB also. It is a repeater/translator station of GQED, serving a different area. GQEI is also affiliated to GPR and GPI.
- G-music is an international station, which is owned by GRJ and affiliated to the radio network G-music (a different entity with the same name as the station). G-music stations are across theacross all the country and broadcast some of the content created by the radio network G-music.

#### Example

```
{
    "@context": "http://schema.org",
    "@type": "DataFeed",
    "dateModified": "2019-04-10T03:01:43-04:00",
    "dataFeedElement": [
        {
            "@context": ["http://schema.googleapis.com",{"@language":"en"}],
            "@type": "RadioBroadcastService",
            "@id": "https://www.tjradio.org/stations?id=4",
            "url": "https://www.tjradio.org/stations?id=4",
            "name": "GQED",
            "alternateName": ["Google Big News"],
            "callSign": "GQED-FM",
            "broadcastDisplayName": "GQED",
            "sameAs": "http://www.gqed.org/",
            "description": "GPR News & Information",
            "broadcastFrequency": {
                "@type": "BroadcastFrequencySpecification",
                "broadcastFrequencyValue": "87.7",
                "broadcastSignalModulation": "FM",
                "broadcastSubChannel": "HD1"
            },
            "areaServed": {
                "@type": "City",
                "name": "San Francisco, CA, US"
            },
            "logo": {
                "@type": "ImageObject",
                "height": 100,
                "width": 800,
                "contentUrl": "http://www.tjradio.org/img/4.jpg"
            },
            "slogan": "The second best radio in the world",
            "broadcastAffiliateOf": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/networks/gpr",
                    "name": "GPR",
                    "sameAs": "https://en.wikipedia.org/wiki/GPR"
                },
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/networks/gri",
                    "name": "GRI",
                    "sameAs": "https://www.gri.org/"
                }
            ],
            "broadcaster": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/gcpb",
                    "name": "Greater California Public Broadcasting",
                    "sameAs": "https://www.gqed.org/gcpb/"
                },
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/qged",
                    "sameAs": "https://www.gqed.org/",
                    "name": "GQED Inc"
                }
            ],
            "potentialAction": {
                "@type": "ListenAction",
                "target": [
                    {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://www.tjradio.org/?streamStationId=4",
                        "actionPlatform": [
                            "http://schema.org/DesktopWebPlatform",
                            "http://schema.org/MobileWebPlatform",
                            "http://schema.org/AndroidPlatform",
                            "http://schema.org/AndroidTVPlatform",
                            "http://schema.org/IOSPlatform"
                        ]
                    },
                    {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://www.tjradio.org/castlink?streamStationId=4",
                        "actionPlatform": [
                            "http://schema.googleapis.com/GoogleAudioCast",
                            "http://schema.googleapis.com/GoogleVideoCast"
                        ]
                    }
                ],
                "actionAccessibilityRequirement": [
                    {
                        "@type": "ActionAccessSpecification",
                        "category": "nologinrequired",
                        "availabilityStarts": "2018-04-01T11:01:00-04:00",
                        "availabilityEnds": "2018-06-30T23:59:00-04:00",
                        "eligibleRegion": [
                            {
                                "@type": "Country",
                                "name": "IN"
                            },
                            {
                                "@type": "Country",
                                "name": "GB"
                            }
                        ]
                    },
                    {
                        "@type": "ActionAccessSpecification",
                        "category": "subscription",
                        "requiresSubscription": {
                            "@type": "MediaSubscription",
                            "@id": "http://www.example.com/packages/basic-pack",
                            "name": "G-Radio Basic Pack",
                            "expectsAcceptanceOf": {
                                "@type": "Offer",
                                "price": 8.99,
                                "priceCurrency": "USD"
                            }
                        },
                        "availabilityStarts": "2018-04-01T11:01:00-04:00",
                        "availabilityEnds": "2018-06-30T23:59:00-04:00",
                        "eligibleRegion": {
                            "@type": "Country",
                            "name": "US"
                        }
                    }
                ]
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.8
            },
            "inLanguage": "en",
            "keywords": [
                "news",
                "information"
            ]
        },
        {
            "@context": ["http://schema.googleapis.com",{"@language":"en"}],
            "@type": "RadioBroadcastService",
            "@id": "https://www.tjradio.org/stations?id=3",
            "url": "https://www.tjradio.org/stations?id=3",
            "name": "GQEI",
            "callSign": "GQEI-FM",
            "broadcastDisplayName": "GQED",
            "sameAs": "http://www.gqed.org/",
            "description": "GPR News & Information",
            "broadcastFrequency": {
                "@type": "BroadcastFrequencySpecification",
                "broadcastFrequencyValue": "88.8",
                "broadcastSignalModulation": "FM",
                "broadcastSubChannel": "HD1"
            },
            "areaServed": {
                "@type": "City",
                "name": "North Highlands, CA"
            },
            "slogan": "The best radio in the world",
            "logo": {
                "@type": "ImageObject",
                "height": 100,
                "width": 800,
                "contentUrl": "http://www.tjradio.org/img/3.jpg"
            },
            "broadcastAffiliateOf": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/network/gpr",
                    "name": "GPR",
                    "sameAs": "https://en.wikipedia.org/wiki/GPR"
                },
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/network/gri",
                    "name": "GRI",
                    "sameAs": "https://www.gri.org/"
                }
            ],
            "broadcaster": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/gcpb",
                    "name": "Greater California Public Broadcasting",
                    "sameAs": "https://www.gqed.org/gcpb/"
                },
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/gqed",
                    "sameAs": "https://www.kqed.org/",
                    "name": "GQED Inc"
                }
            ],
            "parentService": {
                "@type": "RadioBroadcastService",
                "@id": "https://www.tjradio.org/stations?id=4",
                "name": "GQED",
                "sameAs": "https://www.tjradio.org/stations?id=4"
            },
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjradio.org/?streamStationId=3",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.org/AndroidPlatform",
                        "http://schema.org/AndroidTVPlatform",
                        "http://schema.org/IOSPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2018-06-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "US"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.3
            },
            "inLanguage": "en",
            "keywords": [
                "finance",
                "politics"
            ]
        },
        {
            "@context": ["http://schema.googleapis.com",{"@language":"en"}],
            "@type": "RadioBroadcastService",
            "@id": "http://www.tjradio.org/radio?id=2",
            "url": "http://www.tjradio.org/radio?id=2",
            "name": "G-music",
            "sameAs": "http://www.g-music.fr/radio",
            "broadcastDisplayName": "G-music",
            "description": "G-music popular French radio station broadcasting on FM.",
            "broadcastFrequency": {
                "@type": "BroadcastFrequencySpecification",
                "broadcastFrequencyValue": "88.9",
                "broadcastSignalModulation": "FM"
            },
            "areaServed": {
                "@type": "City",
                "name": "Paris, France"
            },
            "broadcastAffiliateOf": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/networks/g-music",
                    "name": "G-music",
                    "sameAs": "http://www.g-music-network.fr"
                }
            ],
            "broadcaster": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/grj",
                    "name": "GRJ",
                    "sameAs": "https://en.wikipedia.org/wiki/GRJ_Group"
                }
            ],
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjradio.org/?streamStationId=2",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-06-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "France"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.2
            },
            "inLanguage": "en",
            "keywords": [
                "Classic Hits"
            ]
        },
        {
            "@context": ["http://schema.googleapis.com",{"@language":"en"}],
            "@type": "RadioBroadcastService",
            "@id": "https://www.tjradio.org/radio?id=1",
            "url": "https://www.tjradio.org/radio?id=1",
            "name": "G-music Radio",
            "callSign": "G-music Radio",
            "broadcastDisplayName": "G-music Radio",
            "sameAs": "http://www.g-music-radio.fr/radio",
            "description": "G-music is a popular french radio broadcast on FM.",
            "broadcastFrequency": {
                "@type": "BroadcastFrequencySpecification",
                "broadcastFrequencyValue": "88.1",
                "broadcastSignalModulation": "FM"
            },
            "areaServed": {
                "@type": "City",
                "name": "Lyon, France"
            },
            "broadcastAffiliateOf": [
                {
                    "@id": "https://www.tjradio.org/networks/g-music",
                    "@type": "Organization",
                    "name": "G-music",
                    "sameAs": "http://www.g-music-network.fr"
                }
            ],
            "broadcaster": [
                {
                    "@type": "Organization",
                    "@id": "https://www.tjradio.org/org/grj",
                    "name": "GRJ",
                    "sameAs": "https://en.wikipedia.org/wiki/GRJ_Group"
                }
            ],
            "parentService": {
                "@type": "RadioBroadcastService",
                "@id": "http://www.tjradio.org/radio?id=2",
                "name": "G-music",
                "sameAs": "http://www.tjradio.org/radio?id=2"
            },
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjradio.org/?streamStationId=1",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.org/AndroidPlatform",
                        "http://schema.org/AndroidTVPlatform",
                        "http://schema.org/IOSPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-06-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "France"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.2
            },
            "inLanguage": "fr",
            "keywords": [
                "Classic Hits"
            ]
        }
    ]
}
  
```

## Related pages

See the following pages for more information on topics related to the properties
described on this page:

- [Identify the entity types of your content.](https://developers.google.com/actions/media/collect-information/identify-the-entity-types)
- [Collect the ID, URL, and name of your content.](https://developers.google.com/actions/media/collect-information/collect-the-id-url-and-name)
- [Identify the details of the radio station.](https://developers.google.com/actions/media/collect-information/entity-types/identify-the-details-radio-station)
- [Collect the metadata of your content.](https://developers.google.com/actions/media/collect-information/collect-the-metadata)