Radio Catalog Reference
When you upload a catalog of the stations available in your radio skill, Alexa can match users' voice requests with your content. The catalog helps support utterances that include properties like frequency
, genre
, and callSign
.
The following sections describe the radio catalog structure and supported catalog fields.
Catalog structure
A radio catalog is a JSON document that describes the content your skill supports. The maximum number of entities in the catalog is 500,000. If you require support for a larger catalog, contact your Alexa Music, Radio, or Podcast representative.
A catalog consists of a header and an array of entities. The following sections specify field requirements for those components.
Header
As shown in the following example, a catalog header has three required fields.
type
version
locales
{
"type": "AMAZON.MusicGroup",
"version": 2.0,
"locales": [
{
"country": "US",
"language": "en"
}
]
}
Entities and entity IDs
The catalog header is followed by an array of entities
. Each catalog entity has a unique identifier. This identifier is specified in the id
field. The id
must remain the same throughout the entity's lifecycle.
Deleted entities
The deleted
field indicates that the referenced entity must be deleted. You can either set an existing deleted
field to true
or add a new deleted
field to the applicable entity ID. The following table shows the fields required or allowed in a deleted
entity, regardless of catalog type.
Field | Required |
---|---|
|
Yes |
|
Yes |
|
Yes (must be |
|
No |
Station catalog example
The following example shows an array of entities after the header.
{
"type": "AMAZON.TerrestrialRadioChannel",
"version": 2.0,
"locales": [
{
"country": "US",
"language": "en"
}
],
"entities": [
{
"id": "station.001",
"names": [
{
"language": "en",
"value": "Today's Pop Hits Seattle"
}
],
"lastUpdatedTime": "2018-08-01T00:00:00.000Z",
"locales": [
{
"country": "US",
"language": "en"
}
],
"alternateNames": [
{
"language": "en",
"values": [
"Today's Pop Hits",
"Pop Hits 90.3"
]
}
],
"location": {
"city": "Seattle",
"subdivision": "US-WA",
"country": "US",
"geoCoordinates": {
"latitude": 41.98032,
"longitude": -3.81729
},
},
"callSign": "KEXP",
"frequency": "90.3",
"band": "AM",
"genres": [
{
"language": "en",
"value": "top hits"
}
],
"ownedAndOperated": "OWNED_AND_OPERATED",
"languageOfContent": [
"en"
],
"deleted": false
}
]
}
Catalog fields
The following table shows the available catalog fields.
Field | Required | Type | Notes |
---|---|---|---|
|
Yes |
enum |
For radio content, always use |
|
Yes |
float |
Multiples of 0.1. Catalog version is currently 2.0 |
|
Yes |
array |
Superset of all entity types in the catalog |
|
Yes |
enum |
ISO-3166-1 alpha-2 value |
|
Yes |
langstring |
Language that corresponds to the specified locale |
|
Yes |
array |
List of radio stations |
|
Yes |
string |
Entity ID (between 1 and 256 characters) set by the provider and used by Alexa to look up radio content in the provider's catalog |
|
Yes |
array |
Must include one or more |
|
Yes |
langstring |
Language field |
|
Yes |
string |
Between 1 and 512 characters |
|
No |
array |
Only required if primary locale is specified in header |
|
Yes (if parent present) |
enum |
ISO-3166 alpha-2 value |
|
Yes (if parent present) |
langstring |
Language field |
|
No |
array |
Alternative names |
|
Yes (if parent present) |
array |
Language for alternative names |
|
Yes (if parent present) |
array |
Between 1 and 512 characters |
|
Yes |
object |
Locale field |
|
Yes |
string |
Free text, between 1 and 64 characters |
|
No |
enum |
ISO_3166-1 alpha 2 value |
|
Yes |
object |
Latitude and longitude are both required for location-based station search |
|
Yes |
float |
Between -90 and 90 |
|
Yes |
float |
Between -180 and 180 |
|
No |
string |
Free text, between 1 and 64 characters |
|
Yes |
string |
Free text, between 1 and 8 characters |
|
No |
array |
Musical genres |
|
Yes |
langstring |
Language of genre |
|
Yes |
string |
Free text, between 1 and 64 characters |
|
Yes |
enum |
To confirm station ownership, specify |
|
Yes |
array |
Array of langstrings |
|
No |
enum |
Choice of AM, FM, HD1, HD2, HD3, DAB, DAB+ (between 1 and 64 characters) |
|
No |
string |
Between 1 and 512 characters |
|
Yes |
boolean |
Defaults to |
|
Yes |
string |
ISO 8601 timestamp (UTC) that shows when this entity was last updated |
ownedAndOperated
field, mark a station OWNED_AND_OPERATED
only if you own and operate the station and are not an aggregator. If the station belongs to a third party and you are simply making it available, you do not own and operate the station and should use AGGREGATOR
as the value. In the United States, terrestrial radio stations are usually owned and operated by the entity (or owner thereof) that holds the station's Federal Communications Commission (FCC) license.Radio genres
Use radio genres from the following pre-modeled English-language values.
- sixties
- seventies
- eighties
- nineties
- two thousands
- adult contemporary
- adult rock
- alternative
- blues
- christian
- gospel
- classic rock
- classical
- college rock
- comedy
- country
- dance
- edm
- hip hop
- holiday
- international
- jazz
- kids
- latin
- metal
- variety, mixed
- news
- conservative talk
- oldies
- pop
- punk
- r and b
- reggae
- rock
- romantic ballad
- smooth jazz
- soft rock
- spanish
- sports
- top forty
- weather
- world
Related topics
- Upload Music or Radio Catalogs
- Understand the Music, Radio, and Podcast Skill API
- Alexa Music, Radio, and Podcast Skill API Reference Overview
- Alexa Music, Radio, and Podcast Skill API Components Reference
Last updated: Nov 27, 2023