SHOUTcast Radio Directory API Documentation

Get Stations on SHOUTcast Radio Directory

Get Genres on SHOUTcast Radio Directory

Other

Get Top500 Stations

Description

Get top 500 stations on SHOUTcast Radio directory.

URL

http://api.shoutcast.com/legacy/Top500?k=[Your Dev ID]

Required Parameters

* k
API Dev Key.

Optional Parameters

* limit
Limit the number of stations to return by passing the limit parameter.

Ex: http://api.shoutcast.com/legacy/Top500?k=[Your Dev ID]&limit=5

Sample XML Response (with limits)

<stationlist>
  <tunein base="/sbin/tunein-station.pls"/>
  <station name=".977 The Hitz Channel-[SHOUTcast.com]" mt="audio/mpeg" id="9907" br="128"
   genre="Pop Rock Top 40"ct="The Fray - You Found Me" lc="4670"/>
  <station name="HOT FM - Lebih Hangat Daripada Biasa : HOT fm-[SHOUTcast.com]"
   mt="audio/mpeg" id="120149" br="24" genre="Malaysia
   Malay" ct="LELAKI IDAMAN MELLY_GOESLOW " lc="3961"/>
  <station name="S K Y . F M - Absolutely Smooth Jazz - the world's smoothest jazz 24 hours a day-[SHOUTcast.com]"
   mt="audio/mpeg" id="1264" br="96" genre="Soft Smooth Jazz" 
   ct="Oli Silk - De-stress Signal" lc="3507"/>
  <station name="Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]-[SHOUTcast.com]" 
   mt="audio/mpeg" id="6687" br="128" genre="Ambient Chill"
   ct="Verbrilli Sound - Descender" lc="2680"/>
  <station name=".977 The 80s Channel-[SHOUTcast.com]" mt="audio/mpeg" id="6803" 
  br="128" genre="80s Pop Rock" ct="Starship - Nothing`s gonna stop us now (1987)" lc="2192"/>
  <station name="The Alex Jones Show-[SHOUTcast.com]" mt="audio/mpeg" id="5516" br="32" genre="Talk" 
   ct="Refeed: Hour 1 (Listen by phone 512-646-5000)" lc="1987"/>
 </stationlist>

Back to Top

Get Stations by keyword search

Description

Get stations which match the keyword searched on SHOUTcast Radio Directory.

Note: This API returns stations which has keyword match in the following fields Station Name, Now Playing info, Genre.

URL

http://api.shoutcast.com/legacy/stationsearch?k=[Your Dev ID]&search=ambient+beats

Required Parameters

* search
Specify the query to search.
* k
API Dev ID.

Optional Parameters

* limit
Limits the no of results to be returned.
Ex: http://api.shoutcast.com/legacy/stationsearch?k=[Your Dev ID]&search=ambient+beats&limit=10

* limit with pagination
Limits the no of results with pagination included.

Ex: http://api.shoutcast.com/legacy/stationsearch?k=[Your Dev ID]&search=ambient+beats&limit=X,Y
Y is the number of results to return and X is the offset.

* Filter by Codec type
Get stations which match the codec type requested.

Ex: http://api.shoutcast.com/legacy/stationsearch?k=[Your Dev ID]&search=ambient+beats&mt=audio/mpeg
MP3 = audio/mpeg & AAC+=audio/aacp.

Sample XML Response

<stationlist>
<tunein base="/sbin/tunein-station.pls"></tunein>
<station name="Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]-[SHOUTcast.com]" mt="audio/mpeg" id="6687" br="128" genre="Ambient Chill" ct="Audiomontage - Abyss" lc="241"></station>
<station name="((Metaphoric.me))128k Room42, ambient beats and chill grooves-[SHOUTcast.com]" mt="audio/mpeg" id="8434" br="128" genre="Ambient Chill" ct="Jazz City - La Noche (Smooth Latin Groove Mix)" lc="83"></station>
<station name="Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]-[SHOUTcast.com]" mt="audio/mpeg" id="8010" br="24" genre="Ambient Chill" ct="Audiomontage - Abyss" lc="54"></station>
<station name="Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]-[SHOUTcast.com]" mt="audio/mpeg" id="9073" br="56" genre="Ambient Chill" ct="Warheads - Daphne" lc="30"></station>
</stationlist>

Back to Top

Get Stations by Genre

Description

Get stations which match the genre specified as query.

URL

http://api.shoutcast.com/legacy/genresearch?k=[Your Dev ID]&genre=classic

Required Parameters

* k
API Dev ID.

Optional Parameters

* limit
Limits the no of results to be returned.

* limit with pagination
Limits the no of results with pagination included.

Ex: http://api.shoutcast.com/legacy/genresearch?k=[Your Dev ID]&genre=classic&limit=X,Y
* Y is the number of results to return and X is the offset.

* Filter by Codec type
Get stations which match the codec type requested.

Ex: http://api.shoutcast.com/legacy/genresearch?k=[Your Dev ID]&genre=classic&&mt=audio/aacp
* MP3 = audio/mpeg & AAC+=audio/aacp.

Sample XML Response

<stationlist>
  <tunein base="/sbin/tunein-station.pls"/>
  <station name=".977 The Hitz Channel-[SHOUTcast.com]" mt="audio/mpeg" id="9907" br="128"
   genre="Pop Rock Top 40" ct="The Fray - You Found Me" lc="4670"/>
  <station name="HOT FM - Lebih Hangat Daripada Biasa : HOT fm-[SHOUTcast.com]" mt="audio/mpeg" 
   id="120149" br="24" genre="Malaysia   Malay"
   ct="LELAKI IDAMAN MELLY_GOESLOW " lc="3961"/>
  <station name="S K Y . F M - Absolutely Smooth Jazz - the world's smoothest jazz 24 hours a day-[SHOUTcast.com]"
   mt="audio/mpeg" id="1264" br="96" genre="Softsmooth Jazz"
   ct="Oli Silk -De-stress Signal" lc="3507"/>
  <station name="Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]-[SHOUTcast.com]"
   mt="audio/mpeg" id="6687" br="128" genre="AmbientChill"
   ct="Verbrilli Sound - Descender" lc="2680"/>
</stationlist>

Back to Top

Get Stations based on Now playing info

Description

Return stations which match a specified query in the now playing node.

URL

http://api.shoutcast.com/station/nowplaying?k=[Your Dev ID]&ct=rihanna&f=xml

Required Parameters

* ct
Query to search in Now Playing node.
* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).
* limit
Limits the no of results to be returned in output.

Sample XML Response

<response>
  <statusCode>200</statusCode>
  <statusText>Ok</statusText>
  <data>
    <stationlist>
      <tunein base="/sbin/tunein-station.pls"/>
      <station name="Dj Wouner- Radio Fusion-A novidade come?a Aqui!-[SHOUTcast.com]" mt="audio/mpeg" id="139549" 
       br="64" genre="Various"ct="Rihanna Feat. Chris Brown & Jay-Z - Umbrella" lc="614" ml="2100" nsc="No"/>
      <station name="R?dio Stronda [ Digital ] Servidor 4-[SHOUTcast.com]" mt="audio/mpeg" id="998783" br="64" 
       genre="Pop  Top  Rock  Funk  Str"ct="T.I. feat Rihanna -Live Your Life" lc="243" ml="70" nsc="No"/>
     .
     .
     . 
    </stationlist> 
  </data>
</response>

URL (JSON Request)

http://api.shoutcast.com/station/nowplaying?ct=rihanna&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Various","id":"139549","mt":"audio/mpeg","name":"Dj Wouner- 
                RadioFusion-A novidadecome?a Aqui!-[SHOUTcast.com]","lc":"614","ml":"2100","br":"64",
                "ct":"Rihanna Feat. Chris Brown& Jay-Z - Umbrella"},
                {"nsc":"No","genre":"Pop  Top  Rock  Funk Str","id":"998783",
                "mt":"audio/mpeg","name":"R?dio Stronda[ Digital ] Servidor
                4-[SHOUTcast.com]","lc":"243","ml":"70","br":"64","ct":"T.I. feat Rihanna - Live Your ife"},
            .
            .
            .
           
          ]

     }
   } 
}

Sample JSON Response (with callback)

callbackfunctionname(
{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Various","id":"139549","mt":"audio/mpeg","name":"Dj Wouner- 
                RadioFusion-A novidadecome?a Aqui!-[SHOUTcast.com]","lc":"614","ml":"2100","br":"64",
                "ct":"Rihanna Feat. Chris Brown& Jay-Z - Umbrella"},
                {"nsc":"No","genre":"Pop  Top  Rock  Funk Str","id":"998783",
                "mt":"audio/mpeg","name":"R?dio Stronda[ Digital ] Servidor
                4-[SHOUTcast.com]","lc":"243","ml":"70","br":"64","ct":"T.I. feat Rihanna - Live Your ife"},
            .
            .
            .
           
          ]

     }
   } 
}
)

Back to Top

Get Stations by Bitrate or Codec type

Description

Get stations which match a particular bitrate or codec type.

URL

Stations filtered by bitrate

http://api.shoutcast.com/station/advancedsearch?br=128&limit=10&f=xml&k=[Your Dev ID]

Stations filtered by media type

http://api.shoutcast.com/station/advancedsearch?mt=audio/mpeg&limit=10&f=xml&k=[Your Dev ID]

Stations filtered by bitrate, media type & genre

http://api.shoutcast.com/station/advancedsearch?mt=audio/mpeg&br=128&search=Trance&&limit=10&f=xml&k=[Your Dev ID]

Required Parameters

* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.
* br
Filter the stations based on bitrate specified.
* mt
Filter the stations based on media type specified.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).
* limit
Limits the no of results to be returned in output.
* genre
Filter stations that match the genre passed.

Sample XML Response

<response>
  <statusCode>200</statusCode>
  <statusText>Ok</statusText>
  <data>
    <stationlist>
      <tunein base="/sbin/tunein-station.pls"/>
      <station name=".977 The Hitz Channel" mt="audio/mpeg" id="9907" 
       br="128" genre="Pop Rock Top 40"
       ct="Chingy - Balla Baby" lc="11576"/>
      <station name="TechnoBase.FM - 24h Techno, Dance, Trance, House and More - 128k MP3-[SHOUTcast.com]"
       mt="audio/mpeg"id="7429" br="128"genre="Techno Trance  Dance House"
       ct="We aRe oNe" lc="8308" ml="8500" nsc="No"/>
      <station name="Absolutely Smooth Jazz - S K Y . F M - the world's smoothest
       jazz 24 hours a day-[SHOUTcast.com]" mt="audio/mpeg" id="948"br="96" genre="Soft Smooth Jazz"
       ct="Jonathan Butler/Kirk Whalum - Dancing on the Shore" lc="6801" ml="10023" nsc="No"/>
    .
    .
    .
    .
    .
    . 
   </stationlist> 
 </data>
</response>

URL (JSON Request)

Stations based on bitrate

http://api.shoutcast.com/station/advancedsearch?br=128&limit=3&f=json&k=[Your Dev ID]

Stations based on media type

http://api.shoutcast.com/station/advancedsearch?mt=mpeg&limit=3&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Pop Rock Top 40","id":"9907",mt":"audio/mpeg","name":".977 The
                 HitzChannel-[SHOUTcast.com]","lc":"11576","ml":"8500","br":"128","ct":"Chingy - Balla Baby"},
                {"nsc":"No","genre":"Techno Trance
                 DanceHouse","id":"7429","mt":"audio/mpeg",
                "name":"TechnoBase.FM - 24h
                 Techno, Dance,Trance, House and More -128kMP3-[SHOUTcast.com]","lc":"8308","ml":"10023",
                "br":"128","ct":"We aRe oNe"},
                {"nsc":"No","genre":"Soft Smooth Jazz","id":"948","mt":"audio/mpeg",
                "name":"Absolutely Smooth Jazz - S K Y . F M - the world's
                 smoothest jazz 24hours a day-[SHOUTcast.com]","lc":"6801","ml":"18600","br":"96",
                "ct":"Jonathan Butler/Kirk Whalum - Dancing on the Shore"},
            .
            .
            .
            .
            .
           
          ]

     }
   }
 }

Sample JSON Response (with callback)

callbackfunctionname(
{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Pop Rock Top 40","id":"9907",mt":"audio/mpeg","name":".977 The
                 HitzChannel-[SHOUTcast.com]","lc":"11576","ml":"8500","br":"128","ct":"Chingy - Balla Baby"},
                {"sc":"No","genre":"Techno Trance
                 DanceHouse","id":"7429","mt":"audio/mpeg",
                "name":"TechnoBase.FM - 24h
                 Techno, Dance,Trance, House and More -128kMP3-[SHOUTcast.com]","lc":"8308",
                "ml":"10023","br":"128","ct":"We aRe oNe"},
                {"nsc":"No","genre":"Soft Smooth Jazz","id":"948","mt":"audio/mpeg",
                "name":"Absolutely Smooth Jazz - S K Y . F M - the world's
                 smoothest jazz 24hours a day-[SHOUTcast.com]","lc":"6801","ml":"18600","br":"96",
                "ct":"Jonathan Butler/Kirk Whalum - Dancing on the Shore"},
            .
            .
            .
            .
            .
           
          ]

     }
   }
 }
)

Back to Top

Get Random Stations

Description

Get random stations on SHOUTcast Radio Directory. Random stations can be restricted to the Bitrate/Genre/Media type specified.

URL

http://api.shoutcast.com/station/randomstations?k=[Your Dev ID]&f=xml

Returns a random station. This API by default returns one random station.To get more random stations, set the number of stations to return by passing the limit parameter.

http://api.shoutcast.com/station/randomstations?k=[Your Dev ID]&f=xml&mt=audio/mpeg&br=128&genre=Fresh

Returns a random station. This API by default returns one random station.To get more random stations, set the number of stations to return by passing the limit parameter.

Required Parameters

* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).
* br
Bitrate to filter the station result.
* mt
Media type to filter the station result.
* genre
Genre to filter the station result.
* limit
This API by default returns one station. To get more random stations, set the number of stations to return by passing the limit parameter.

Sample XML Response(Parameter Limit)

<response>
  <statusCode>200</statusCode>
  <statusText>Ok</statusText>
  <data>
    <stationlist>
      <tunein base="/sbin/tunein-station.pls"/>
      <station name="FreshBakedJams.com-[SHOUTcast.com]" mt="audio/mpeg" id="429395" br="128" genre="Fresh BakedJams" 
       ct="D-Rellz - Story" lc="0" ml="600" nsc="No"/>
    </stationlist>
  </data>
</response>

URL (JSON Request)

http://api.shoutcast.com/station/nowplaying?ct=rihanna&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Turkish TurkTurkce","id":205936,"mt":"audio/mpeg",
                "name":"TRD 1 - Turk Radyo Dunyasi - Turkish World
                 Radio - SMS: +90 544 644 6226- www.trd.com.tr-[SHOUTcast.com]",
                "lc":2,"ml":"600","br":32,"ct":"Nalan -Sonunda Bitti"},            
                   

             
          
          ]

     }
  }
 }

Sample JSON Response (with callback)

callbackfunctionname(
{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "stationlist":{

        "station":[

               "tunein":{

                   "base":"/sbin/tunein-station.pls"
                    
                    }
                {"nsc":"No","genre":"Turkish TurkTurkce","id":205936,"mt":"audio/mpeg",
                "name":"TRD 1 - Turk Radyo Dunyasi - Turkish World
                 Radio - SMS: +90 544 644 6226- www.trd.com.tr-[SHOUTcast.com]",
                "lc":2,"ml":"600","br":32,"ct":"Nalan -Sonunda Bitti"},            
          ]

     }
  }
 }
)

Back to Top

Get All Genres

Description

Get all the genres on SHOUTcast Radio Directory

URL

http://api.shoutcast.com/legacy/genrelist?k=[Your Dev ID]

Required Parameters

* k
API Dev ID.

Sample XML Response

<genrelist>
  <genre name="30s"/>
  <genre name="40s"/>
  <genre name="50s"/>
  <genre name="60s"/>
  <genre name="70s"/>
  <genre name="80s"/>
  <genre name="90s"/>
   .
   . 
   . 
   .
</genrelist>

Back to Top

Get Primary genres

Description

Get only the Primary Genres on SHOUTcast Radio Directory

URL

http://api.shoutcast.com/genre/primary?k=[Your Dev ID]&f=xml

Required Parameters

* f - the response format (xml, json,rss). You can choose xml,json or rss based results.
* k - API Dev ID.

Optional Parameters

* c - The callback function to invoke in the response (appropriate for JSON responses only).

Sample XML Response

<response>
   <statusCode>200</statusCode>
   <statusText>Ok</statusText>
   <data>
     <genrelist> 
       <genre name="Alternative" id="1" parentid="0" haschildren="true"/>
       <genre name="Blues" id="24" parentid="0" haschildren="true"/>
       . 
       .
       . 
     </genrelist> 
   </data>
</response>

Sample JSON Response

{"response":{
    "statusCode":200,
    "statusText":"Ok" 
    },   
 "data":"{
    "genrelist":{
        "genre":[

               {"id":1,"haschildren":true,"name":"Alternative","parentid":0},
               {"id":24,"haschildren":true,"name":"Blues","parentid":0},
                .
                .
                .                
          ]
       }
     }
 }

Sample JSON Response (with callback)

callbackfunctionname(
{"response":{
    "statusCode":200,
    "statusText":"Ok" 
    },   
 "data":"{
    "genrelist":{
        "genre":[

               {"id":1,"haschildren":true,"name":"Alternative","parentid":0},
               {"id":24,"haschildren":true,"name":"Blues","parentid":0},
                .
                .
                .                
          ]
       }
     }
 }
)

Back to Top

Get Secondary Genres

Description

Get secondary genre list (if present) for a specified primary genre.

URL

http://api.shoutcast.com/genre/secondary?parentid=0&k=[Your Dev ID]&f=xml

Required Parameters

* parentid
Genreid of the primary genre. You can retreive the entire genre set by passing parentid=0.
* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).

Sample XML Response

<response>
 <statusCode>200</statusCode>
 <statusText>Ok</statusText>
 <data>
  <genrelist>
     <genre name="Alternative" id="1" parentid="0" haschildren="true">
       <genrelist>
         <genre name="Adult Alternative" id="2" parentid="1" haschildren="false"/>
         <genre name="Britpop" id="3" parentid="1" haschildren="false"/>
         <genre name="Classic Alternative" id="4" parentid="1" haschildren="false"/> 
         .
         .
         .
      </genrelist>
     </genre>
 </genrelist>
</data>
<response>

URL (JSON Request)

http://api.shoutcast.com/genre/secondary?parentid=0&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "genrelist":{

        "genre":[

           "genrelist":{

              "genre":[

                  {"id":1,"haschildren":true,"name":"Alternative","parentid":0},
                  {"id":24,"haschildren":true,"name":"Blues","parentid":0},
                  {"id":32,"haschildren":true,"name":"Classical","parentid":0},
                  .
                  .
                  .                   
           ]
         }
       ]
     }
  }
 }

Sample JSON Response (with callback)

callbackfunctionname(
{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "genrelist":{

        "genre":[

           "genrelist":{

              "genre":[

                  {"id":1,"haschildren":true,"name":"Alternative","parentid":0},
                  {"id":24,"haschildren":true,"name":"Blues","parentid":0},
                  {"id":32,"haschildren":true,"name":"Classical","parentid":0},
                  .
                  .
                  .                   
           ]
         }
       ]
     }
  }
 }
)

Back to Top

Get Genres details by passing Genreid

Description

Get details such as Genre Name, Sub Genres (if its a primary genre), has children by passing the genre-id.

URL

http://api.shoutcast.com/genre/secondary?id=25&f=xml&k=[Your Dev ID]

Required Parameters

* id
Input respective genre or sub-genre id.
* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).

Sample XML Response

<response>
 <statusCode>200 </statusCode>
 <statusText>Ok </statusText>
 <data>
   <genrelist> 
     <genre name="Acoustic Blues" id="25" parentid="24" haschildren="false"/>
   </genrelist> 
 </data>
</response>

URL (JSON Request)

http://api.shoutcast.com/genre/secondary?id=25&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "genrelist":{

        "genre":{

               {"id":25,"haschildren":false,"name":"AcousticBlues","parentid":24}             
           
          }

     }
  }
 }

Sample JSON Response (with callback)

callbackfunctionname(

        {"response":{

    "statusCode":200,
    "statusText":"Ok" 

        },   
      "data":"{

          "genrelist":{

                 "genre":{

                     {"id":25,"haschildren":false,"name":"AcousticBlues","parentid":24}  
                                         
          }

     }
  
  }
 }
)

Back to Top

Get Genres based on availability of sub-genres

Description

Get genres based on their sub-genre availability at any node level in the genre hierarchy of SHOUTcast.

URL

Genres with sub genres:
http://api.shoutcast.com/genre/secondary?haschildren=true&f=xml&k=[Your Dev ID]

Genres without sub genres:
http://api.shoutcast.com/genre/secondary?haschildren=false&f=xml&k=[Your Dev ID]

Required Parameters

* haschildren
'true' to get genre or subgenre which has sub-genres.
'false' to get genre or subgenre which does not have sub-genres.
* f
the response format (xml, json, rss). You can choose xml,json or rss based results.
* k
API Dev ID.

Optional Parameters

* c
The callback function to invoke in the response (appropriate for JSON responses only).

Sample XML Response

<response>
   <statusCode>200</statusCode>
   <statusText>Ok</statusText>
   <data>
     <genrelist> 
       <genre name="Alternative" id="1" parentid="0" haschildren="true"/>
	 <genrelist>
	    <genre name="Adult Alternative" id="2" parentid="1" haschildren="false"/>
	    <genre name="Britpop" id="3" parentid="1" haschildren="false"/>
	    . 
	    .
	    . 
	 </genrelist>
       </genre>
       <genre name="Blues" id="24" parentid="0" haschildren="true"/>
	 <genrelist>
	    <genre name="Adult Alternative" id="2" parentid="1" haschildren="false"/>
	    <genre name="Britpop" id="3" parentid="1" haschildren="false"/>
	    . 
	    .
	    . 
	 </genrelist>
       </genre>
       .
       .
       .
     </genrelist> 
   </data>
</response>

URL (JSON Request)

http://api.shoutcast.com/genre/secondary?haschildren=true&f=json&k=[Your Dev ID]

Sample JSON Response

{"response":{

    "statusCode":200,
    "statusText":"Ok" 

    },   
 "data":"{

    "genrelist":{

        "genre":[

             "genrelist":{

               "genre":[


                    {"id":2,"haschildren":false,"name":"AdultAlternative","parentid":1},
                    {"id":3,"haschildren":false,"name":"Britpop","parentid":1},
                    {"id":4,"haschildren":false,"name":"ClassicAlternative","parentid":1},
                    {"id":205,"haschildren":false,"name":"RapMetal","parentid":195},
                    {"id":195,"haschildren":true,"name":"Metal","parentid":0},
                    .
                    .
                    .
                     
          ]
         }
        ]
       }
     }
 }

Sample JSON Response (with callback)

callbackfunctionname(

        {"response":{

    "statusCode":200,
    "statusText":"Ok" 

        },   
      "data":"{

          "genrelist":{

                 "genre":[

                     "genrelist":{

                        "genre":[

                            {"id":2,"haschildren":false,"name":"AdultAlternative","parentid":1},
                            {"id":3,"haschildren":false,"name":"Britpop","parentid":1},
                            {"id":4,"haschildren":false,"name":"ClassicAlternative","parentid":1},
                            {"id":205,"haschildren":false,"name":"RapMetal","parentid":195},
                            {"id":195,"haschildren":true,"name":"Metal","parentid":0},
                            .
                            .
                            .
               ]
             }
           ]
         }
       }
   } )

Back to Top

How to tune into a station

To tune into a station, find the "id" of the station from the API results & make a call to http://yp.shoutcast.com/sbin/tunein-station.pls?id=[Station_id] by appending the station id.

Ex: If the station id is 1025, Call => http://yp.shoutcast.com/sbin/tunein-station.pls?id=1025&k=[Your Dev ID]

Back to Top

XML Caching

Do not cache the XML for more than 1 day, as station ID's can and will change.

Back to Top

Error Codes

The Error codes encountered when invalid data is input or passed to access the APIs are as below

HTTP Status Code

400=Bad Request

404=Page Not Found

500=Generic Server Error

460=Missing required parameter

462=Parameter Error

440=Invalid Devid

BUSINESS_ERROR

10001=Internal Server error

10002=XML Root Element not matching

10003=Error while interacting with private api

10002=Cache xml data not found

GENERAL_ERROR

20001=Unable to find InitialContext

20002=Unable to acquire DataSource

20003=Unable to load SQL query

20004=Unable to load property file

20005=Unable to execute SQL query

20006=Unable to fetch ResultSet

20007=Error in finally block

20008=NullPointer Exception Raised

20009=Error while adding xml element

20010=Number Format Exception

20011=Error in creating xml document

20012=Null object received

20012=XML Data not found in Cache

20013=File not found

20014=Unable to connect to search api

20015=Error while building xml document

20016=Error while encoding url string

20017=Error while connecting to shoutcast api

20018=Error while processing the jsp

20019=Error while reading request object

20020=Error while sending email

20021=Invalid Response Type

20022=Maximum Value Exceeded

20023=Error while connecting to AKES

20024=Error while building AKES response xml document

20025=No Data in AKES response xml document

20026=Missing required parm : (REFERRER)

20027=Invalid key received from

20028=Missing devId= or k= param

20029=Missing required parm : (k)

20030=Missing required parm : (keyType)

20027=Deny - authRequired fail

20028=Deny - usageLimited fail

20029=Deny - rightNotSet fail

20030=Deny - referrerUsageLimited fail

Back to Top