<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.winamp.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.winamp.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rnsc</id>
		<title>Winamp Developer Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.winamp.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rnsc"/>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/Special:Contributions/Rnsc"/>
		<updated>2026-04-20T13:41:15Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.3</generator>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2014-09-18T14:41:13Z</updated>
		
		<summary type="html">&lt;p&gt;Rnsc: /* Successful Response */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Rnsc</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2014-09-18T14:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;Rnsc: /* Successful Response */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Rnsc</name></author>	</entry>

	</feed>