The control API defines commands and asynchronous events. Events are documented as Webhooks due to limitations of the OAS spec.", "termsOfService": "https://developer.sonos.com/legal/terms-of-service", "x-logo": { "url": "Sonos-Logo.png" } }, "x-a127-services": { "add-x-sonos-headers": { "provider": "x-headers", "apply": { "pipe": "request", "endPoint": "target" }, "options": { "ignoreUnresolvedVariables": true, "displayName": "Add_X-Sonos_Headers", "headers": { "x-sonos-muse-permissions": { "type": "string", "default": "{authz_response.permissions}", "description": "x-sonos-muse-permissions header" }, "x-sonos-api-key": { "type": "string", "default": "{client_id}", "description": "x-sonos-api-key header" }, "x-sonos-user-id": { "type": "string", "default": "{app_enduser}", "description": "x-sonos-user-id header" } } } }, "base-apply-restrictions": { "provider": "apply-restrictions", "apply": { "pipe": "request", "endPoint": "proxy" }, "options": { "displayName": "AR_BaseMuseRestrictions", "restrictionRules": { "allow": true }, "parameters": [{ "name": "oauth_only", "value": true }] } }, "x-muse-permissions": { "provider": "apply-restrictions", "options": { "displayName": "AR_AuthZPermissions", "restrictionRules": { "allow": true, "checkAll": true, "rules": [{ "condition": "exists", "ref": "authz_response.permissions" }], "e_reason": "Missing or invalid permissions" }, "parameters": [{ "name": "authz", "value": true }] } } }, "servers": [{ "url": "{protocol}://{player}:1443/api/{version}", "description": "Full api URI", "variables": { "version": { "description": "MUSE API major version", "default": "v1", "enum": ["v1", "v2"] }, "player": { "description": "Player IP address", "default": "0.0.0.0" }, "protocol": { "description": "connection protocol", "default": "https", "enum": ["https", "wss"] } } }, { "url": "{protocol}://api.ws.sonos.com/control/api/{version}", "description": "Sonos Experience", "variables": { "version": { "description": "MUSE API major version", "default": "v1", "enum": ["v1", "v2"] }, "protocol": { "description": "connection protocol", "default": "https", "enum": ["https"] } } }], "x-sonos-targets": [{ "name": "default", "server": "muse-backend-apigee-origin-d1" }], "tags": [{ "name": "global", "description": "This is the global namespace.", "x-muse-namespace-permissions": [{ "name": "read", "bit": "0" }, { "name": "write", "bit": "1" }, { "name": "read-internal", "bit": "2" }, { "name": "write-internal", "bit": "3" }], "x-muse-namespace-events": [{ "x-muse-event-name": "groupCoordinatorChanged", "x-muse-since-version": "1.0.0", "$ref": "#/components/schemas/groupCoordinatorChanged" }], "x-muse-since-version": "1.0.0" }, { "name": "playback", "description": "The \"playback\" namespace contains general commands and events that can be used by clients that\n wish to control the transport state of a group but don't need to know exactly what is currently\n playing. The playback namespace also exposes the current and available play modes (repeat,\n shuffle, crossfade) and playback policies (canSkip, etc.). Commands in this namespace can return\n global errors or playbackError responses.", "x-muse-namespace-permissions": [{ "name": "read", "bit": "0" }, { "name": "write", "bit": "1" }, { "name": "admin", "bit": "2" }], "x-muse-since-version": "1.0.0" }], "paths": { "/groups/{groupId}/playback/content": { "post": { "operationId": "Playback-LoadContent-GroupId", "description": "Loads media content obtained from the content lookup service. This replaces any content already in the queue.\n\n Example payload:\n {\n \"type\": \"ALBUM\",\n \"id\": {\n \"objectId\": \"spotify:album:2QgGoL5VSQhPHudTObS7zK\",\n \"serviceId\": \"12\"\n },\n \"playbackAction\":\"PLAY\",\n \"playModes\": {\n \"repeat\": true\n },\n \"playbackLocation\": {\n \"trackNumber\": 1\n }\n \"defaults\": \"ewoibmFtZSI6I...\",\n }", "summary": "loadContent", "tags": ["playback"], "responses": { "200": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["OK"], "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ok" } } } }, "400": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_INVALID_OBJECT_ID", "ERROR_INVALID_SYNTAX", "ERROR_MISSING_PARAMETERS"], "content": { "application/json": { "schema": { "$ref": "#/components/schemas/globalError" } } } }, "401": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_NOT_AUTHORIZED"], "content": { "application/json": { "schema": { "$ref": "#/components/schemas/globalError" } } } }, "403": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_NO_PERMISSION"], "content": { "application/json": { "schema": { "$ref": "#/components/schemas/globalError" } } } }, "404": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_GROUP_CHANGED", "ERROR_UNSUPPORTED_NAMESPACE", "ERROR_CMD_FUTURE"], "content": { "application/json": { "schema": { "oneOf": [{ "$ref": "#/components/schemas/globalError" }, { "$ref": "#/components/schemas/groupCoordinatorChanged" }], "discriminator": { "propertyName": "_objectType", "mapping": { "groupCoordinatorChanged": "#/components/schemas/groupCoordinatorChanged", "globalError": "#/components/schemas/globalError" } } } } } }, "499": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_ACCOUNT_INVALID_ID", "ERROR_COMMAND_FAILED", "ERROR_QUEUE_FULL", "ERROR_NYI"], "content": { "application/json": { "schema": { "oneOf": [{ "$ref": "#/components/schemas/accountError" }, { "$ref": "#/components/schemas/globalError" }], "discriminator": { "propertyName": "_objectType", "mapping": { "globalError": "#/components/schemas/globalError", "accountError": "#/components/schemas/accountError" } } } } } }, "500": { "description": "The response will be OK and return an empty object when given a valid content resource.\n Otherwise, it will return either not playable or invalid parameter.", "x-muse-error-codes": ["ERROR_INTERNAL"], "content": { "application/json": { "schema": { "$ref": "#/components/schemas/globalError" } } } } }, "security": [{ "ApiKeyAuth": [] }, { "LegacyCloudOAuth2": ["playback-control-all"], "BearerAuth": [], "ApiKeyAuth": [] }], "x-muse-permissions": ["write"], "x-muse-since-version": "1.34.0", "requestBody": { "content": { "application/json": { "schema": { "title": "Playback-LoadContentBody", "type": "object", "properties": { "type": { "type": "string", "maxLength": 48, "description": "The type of the media content resource being loaded, e.g. track, album, playlist, stream.", "x-muse-since-version": "1.34.0" }, "id": { "description": "The id of the media content resource being loaded. The objectId and one of serviceId or\n accountId is required for the player to uniquely identify the content.", "x-muse-since-version": "1.34.0", "$ref": "#/components/schemas/universalMusicObjectId" }, "defaults": { "type": "string", "maxLength": 1024, "description": "An opaque string that allows all clients in the household to observe playback metadata.", "x-muse-since-version": "1.34.0" }, "playbackAction": { "description": "(Optional)\n The playback action to perform after loading the content.", "default": "PAUSE", "x-muse-since-version": "1.34.0", "$ref": "#/components/schemas/contentPlaybackAction" }, "playModes": { "nullable": true, "description": "(Optional)\n Configure a play mode in the playModes array by adding a \"true\" or \"false\" value for the mode, or omit a play mode to leave it unchanged.", "x-muse-since-version": "1.34.0", "$ref": "#/components/schemas/playMode" }, "playbackLocation": { "nullable": true, "description": "(Optional)\n Specifies the track number and/or seek position at which to begin playback.\n Note that the playbackLocation only applies to REPLACE or INSERT queueActions; for operations\n where the queueAction does not move the playback head, this parameter is ignored.", "x-muse-since-version": "1.40.0", "$ref": "#/components/schemas/playbackLocation" } }, "required": ["type", "id", "defaults"] } } } } }, "parameters": [{ "in": "path", "name": "groupId", "description": "Target groupId", "required": true, "schema": { "type": "string" }, "x-muse-since-version": "1.0.0" }, { "in": "header", "name": "X-Sonos-Api-Key", "description": "Client API Key for the integration. Required in V1 but deprecated in V2.", "required": false, "schema": { "type": "string", "format": "uuid" }, "x-muse-since-version": "1.0.0", "deprecated": true, "x-muse-deprecated-version": "2.0.0", "x-muse-removed-version": "2.0.0" }, { "in": "header", "name": "X-Sonos-Corr-Id", "description": "Correlation UUID for data tracking purposes", "required": false, "schema": { "type": "string", "format": "uuid" }, "x-muse-since-version": "1.0.0" }], "description": "The \"playback\" namespace contains general commands and events that can be used by clients that\n wish to control the transport state of a group but don't need to know exactly what is currently\n playing. The playback namespace also exposes the current and available play modes (repeat,\n shuffle, crossfade) and playback policies (canSkip, etc.). Commands in this namespace can return\n global errors or playbackError responses." } }, "x-webhooks": { "global:groupCoordinatorChanged": { "post": { "summary": "groupCoordinatorChanged", "description": "No description available", "operationId": "global_groupCoordinatorChanged", "tags": ["global"], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/groupCoordinatorChanged" } } } }, "responses": { "200": { "description": "event successfully processed" }, "403": { "description": "The event handler endpoint is Forbidden. The event source MAY stop sending events to the endpoint after receiving this error." } } } } }, "components": { "schemas": { "accountError": { "x-muse-object-type": "dataType", "type": "object", "description": "No description available", "properties": { "errorCode": { "type": "string", "description": "No description available", "default": "MUSE_EC_OK", "x-muse-since-version": "1.0.0" }, "reason": { "type": "string", "maxLength": 256, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "accountId": { "type": "string", "maxLength": 36, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.0.0", "x-muse-is-object-type": true } }, "required": ["errorCode", "_objectType"], "x-muse-since-version": "1.0.0" }, "contentPlaybackAction": { "x-muse-object-type": "enum", "type": "string", "description": "The playback action to perform after loading the content.", "enum": ["PAUSE", "PLAY"], "x-muse-since-version": "1.30.0" }, "globalError": { "x-muse-object-type": "dataType", "type": "object", "description": "Players use the globalError object type for command responses that include generic errors that apply to commands in all namespaces in the Control API. Players send an errorCode and reason in the body, as well as a success value of false in the response header.\n\n The reason values are readable strings that describe syntax and parameter errors. These strings are not intended for end-user display or for use programmatically.", "properties": { "errorCode": { "type": "string", "description": "The particular error that occurred.", "default": "ERROR_COMMAND_FAILED", "x-muse-since-version": "1.0.0" }, "reason": { "type": "string", "maxLength": 256, "description": "(Optional) A message, if present, indicating more information about the error, to aid in diagnosing problems. Reason strings are not meant for end-user display but are useful in development or error logs.", "x-muse-since-version": "1.0.0", "nullable": true }, "wwwAuthenticate": { "type": "string", "maxLength": 256, "description": "In the event that a command is not authorized to be executed, this field details\n the authorization failure per https://www.rfc-editor.org/rfc/rfc6750#section-3.", "x-muse-since-version": "1.36.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.0.0", "x-muse-is-object-type": true } }, "required": ["errorCode", "_objectType"], "x-muse-since-version": "1.0.0" }, "groupCoordinatorChanged": { "x-muse-object-type": "event", "type": "object", "description": "No description available", "properties": { "groupStatus": { "description": "No description available", "x-muse-since-version": "1.0.0", "$ref": "#/components/schemas/groupStatusCodes" }, "groupName": { "type": "string", "maxLength": 64, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "websocketUrl": { "type": "string", "maxLength": 66, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "playerId": { "type": "string", "maxLength": 24, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.0.0", "x-muse-is-object-type": true } }, "required": ["groupStatus", "_objectType"], "x-muse-since-version": "1.0.0" }, "groupStatusCodes": { "x-muse-object-type": "enum", "type": "string", "description": "No description available", "enum": ["GROUP_STATUS_GONE", "GROUP_STATUS_MOVED", "GROUP_STATUS_UPDATED"], "x-muse-since-version": "1.0.0" }, "ok": { "x-muse-object-type": "dataType", "type": "object", "description": "This object represents an empty (default) success. The platform returns\n an empty object ({}).", "properties": {}, "x-muse-since-version": "1.0.0" }, "playMode": { "x-muse-object-type": "dataType", "type": "object", "description": "This argument only applies to content that uses the shared queue.\n\n If playModes.shuffle is null or omitted, the current shuffle mode of the player will be retained\n and respected.\n\n If playModes.shuffle is true, the new tracks will be shuffled when added to the shared\n queue. The shared queue's shuffle mode will be turned on if it is not already on.\n\n If playModes.shuffle is false, the shuffle mode on the player will be turned off and\n the tracks will be added in their normal order.\n\n This applies for each of the play modes individually, which are not mutually exclusive with each other.", "properties": { "repeat": { "type": "boolean", "description": "Repeat tracks. When playback reaches the end of the current queue of tracks, playback will wrap around and continue from the beginning of the queue.", "x-muse-since-version": "1.0.0", "nullable": true }, "repeatOne": { "type": "boolean", "description": "Repeat the current track indefinitely until this mode is disabled or your app explicitly changes the playhead position to a different track, for example, by skipping to the next track, a previous track, or a specific track in a cloud queue.", "x-muse-since-version": "1.0.0", "nullable": true }, "shuffle": { "type": "boolean", "description": "Play the tracks in the queue in a randomly shuffled order.", "x-muse-since-version": "1.0.0", "nullable": true }, "crossfade": { "type": "boolean", "description": "Fade out and mix the end of a track with the start of the next track as it is being faded in, creating a crossfade effect.", "x-muse-since-version": "1.0.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.0.0", "x-muse-is-object-type": true } }, "required": ["_objectType"], "x-muse-since-version": "1.0.0" }, "playbackLocation": { "x-muse-object-type": "dataType", "type": "object", "description": "Specifies a location at which to start playback. Playback location will be in terms of a track\n number, a position, or both. The positionMillis refers to the seek point within the currently\n selected track: that is, given a list of ~3min tracks, a seek point of 10 minutes (6e+5 ms)\n would refer to 10 minutes into the first track, not somewhere in the 4th track.", "properties": { "trackNumber": { "type": "integer", "format": "int32", "description": "A 1-based track number to which to seek before playback can begin. If unspecified, or the\n content only has a single track, this value will be ignored. If this track number is greater\n than the total tracks in the music object, the command will return an error.", "x-muse-since-version": "1.40.0", "nullable": true }, "positionMillis": { "type": "integer", "format": "int32", "description": "A point in time within the selected track at which playback should begin. If the position is\n specified but not the track number, this value will be treated as an offset into the track\n 1 in this universal music object id. Seek offsets that go past the end of the track will\n be ignored.", "x-muse-since-version": "1.40.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.40.0", "x-muse-is-object-type": true } }, "required": ["_objectType"], "x-muse-since-version": "1.40.0" }, "universalMusicObjectId": { "x-muse-object-type": "dataType", "type": "object", "description": "Universal Music Object Id\n\n JSON representation:\n {\n \"serviceId\": \"3\",\n \"objectId\": \"tr12345\",\n \"accountId\": \"acct1234\"\n }\n\n Local Library:\n {\n \"objectId\": \"S://ENTERPRISE/media/Music/Radiohead/OK%20Computer\",\n \"serviceId\": \"local-library\",\n \"accountId\": \"mhhid_[household id]\",\n }\n\n The serviceId is equivalent to the \"sid()\" function in RMusicServiceDescriptor.\n RMusicServiceDescriptor::sid() returns an unsigned integer. This is assumed to\n be 32 bits in our system. Therefore, rgchServiceId must be large enough to\n store 4294967295.\n\n The objectId is the object Id from the service. For SMAPI services, it is the\n SMAPI Id. We also have custom code to support Pandora and Rhapsody.\n These size came from inspecting the following constants:\n * SMAPI Ids are based on R_SONOS_MAX_ID_LEN = 256\n * Rhapsody Ids are RRD_ID_LEN = 64\n * Pandora Ids are RPANDORA_MAX_ID_LEN = (128+16) = 144\n\n The accountId is used to identify the account used for listening. We have not\n finalized the format, but we are working with: sn_123123, where the numeric part\n is the account serial number and mhhid_[household id].", "properties": { "serviceId": { "type": "string", "maxLength": 20, "description": "No description available", "x-muse-since-version": "1.0.0", "nullable": true }, "objectId": { "type": "string", "maxLength": 256, "description": "No description available", "x-muse-since-version": "1.0.0" }, "accountId": { "type": "string", "maxLength": 128, "description": "The account id linked to this object in one of the following formats: sn_[household id] or mhhid_[household id]", "x-muse-since-version": "1.0.0", "nullable": true }, "_objectType": { "type": "string", "description": "Identifies the object schema used to deserialize this representation", "x-muse-since-version": "1.0.0", "x-muse-is-object-type": true } }, "required": ["objectId", "_objectType"], "x-muse-since-version": "1.0.0" }, "settings_etag_type": { "description": "The eTag value which changes each time an update is made to the settingsGroup", "type": "string" }, "settings_timestamp_type": { "description": "A monotonically increasing uint64_t that is incremented each time an update is made to the settings group. It is encoded as a string for portability", "type": "string", "pattern": "^[0-9]+$", "maxLength": 20 } }, "securitySchemes": { "ApiKeyAuth": { "type": "apiKey", "in": "header", "name": "X-Sonos-Api-Key" }, "LegacyPlayerOAuth2": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://oauth.ws.sonos.com/partner/oauth/v2/authorize", "tokenUrl": "https://oauth.ws.sonos.com/auth/oauth/v2/token", "refreshUrl": "https://oauth.ws.sonos.com/auth/oauth/v2/token", "scopes": { "hh-config": "Grants hh-config access", "hh-config-admin": "Grants access to hh-config-admin operations" } } } }, "LegacyCloudOAuth2": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://api.sonos.com/login/v3/oauth", "tokenUrl": "https://api.sonos.com/login/v3/oauth/access", "refreshUrl": "https://api.sonos.com/login/v3/oauth/access", "scopes": { "playback-control-all": "Grants playback control" } } } }, "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "Random string access token (sample: Bearer 4NFaXYpulWapPTDIxuLGLlxOOfZ9)", "description": "Used to accept oauth2 tokens" } } } } }, "searchIndex": { "store": ["tag/global", "tag/global/operation/global_groupCoordinatorChanged", "tag/playback", "tag/playback/operation/Playback-LoadContent-GroupId"], "index": { "version": "2.3.9", "fields": ["title", "description"], "fieldVectors": [["title/0", [0, 0.357]], ["description/0", [0, 0.566, 1, 1.1]], ["title/1", [2, 1.204]], ["description/1", [3, 1.852, 4, 1.066, 5, 1.852]], ["title/2", [6, 0.693]], ["description/2", [0, 0.259, 1, 0.909, 4, 0.502, 6, 0.909, 7, 0.873, 8, 0.873, 9, 1.313, 10, 0.873, 11, 0.873, 12, 0.873, 13, 0.873, 14, 0.873, 15, 0.873, 16, 0.873, 17, 0.873, 18, 0.873, 19, 0.873, 20, 0.873, 21, 0.873, 22, 1.313, 23, 1.313, 24, 0.873, 25, 0.873, 26, 0.502, 27, 0.873, 28, 0.873, 29, 0.873, 30, 0.873, 31, 0.873, 32, 0.873, 33, 0.873, 34, 0.873, 35, 0.873]], ["title/3", [36, 1.204]], ["description/3", [26, 0.517, 37, 0.898, 38, 0.898, 39, 1.606, 40, 0.898, 41, 0.898, 42, 0.898, 43, 0.898, 44, 0.898, 45, 0.898, 46, 0.898, 47, 0.898, 48, 2.13, 49, 0.898, 50, 0.898, 51, 0.898, 52, 0.898, 53, 0.898, 54, 0.898, 55, 0.898, 56, 0.898, 57, 0.898, 58, 0.898, 59, 0.898, 60, 0.898, 61, 0.898, 62, 0.898, 63, 0.898, 64, 0.898]]], "invertedIndex": [["", { "_index": 48, "title": {}, "description": { "3": {} } }], ["1", { "_index": 61, "title": {}, "description": { "3": {} } }], ["12", { "_index": 55, "title": {}, "description": { "3": {} } }], ["album", { "_index": 50, "title": {}, "description": { "3": {} } }], ["alreadi", { "_index": 44, "title": {}, "description": { "3": {} } }], ["avail", { "_index": 4, "title": {}, "description": { "1": {}, "2": {} } }], ["canskip", { "_index": 30, "title": {}, "description": { "2": {} } }], ["client", { "_index": 12, "title": {}, "description": { "2": {} } }], ["command", { "_index": 9, "title": {}, "description": { "2": {} } }], ["contain", { "_index": 7, "title": {}, "description": { "2": {} } }], ["content", { "_index": 39, "title": {}, "description": { "3": {} } }], ["control", { "_index": 14, "title": {}, "description": { "2": {} } }], ["crossfad", { "_index": 28, "title": {}, "description": { "2": {} } }], ["current", { "_index": 22, "title": {}, "description": { "2": {} } }], ["default", { "_index": 62, "title": {}, "description": { "3": {} } }], ["descript", { "_index": 3, "title": {}, "description": { "1": {} } }], ["don't", { "_index": 18, "title": {}, "description": { "2": {} } }], ["error", { "_index": 33, "title": {}, "description": { "2": {} } }], ["etc", { "_index": 31, "title": {}, "description": { "2": {} } }], ["event", { "_index": 10, "title": {}, "description": { "2": {} } }], ["ewoibmftzsi6i", { "_index": 63, "title": {}, "description": { "3": {} } }], ["exactli", { "_index": 21, "title": {}, "description": { "2": {} } }], ["exampl", { "_index": 46, "title": {}, "description": { "3": {} } }], ["expos", { "_index": 24, "title": {}, "description": { "2": {} } }], ["gener", { "_index": 8, "title": {}, "description": { "2": {} } }], ["global", { "_index": 0, "title": { "0": {} }, "description": { "0": {}, "2": {} } }], ["global:groupcoordinatorchang", { "_index": 5, "title": {}, "description": { "1": {} } }], ["group", { "_index": 17, "title": {}, "description": { "2": {} } }], ["groupcoordinatorchang", { "_index": 2, "title": { "1": {} }, "description": {} }], ["groups/{groupid}/playback/cont", { "_index": 64, "title": {}, "description": { "3": {} } }], ["id", { "_index": 51, "title": {}, "description": { "3": {} } }], ["know", { "_index": 20, "title": {}, "description": { "2": {} } }], ["load", { "_index": 37, "title": {}, "description": { "3": {} } }], ["loadcont", { "_index": 36, "title": { "3": {} }, "description": {} }], ["lookup", { "_index": 41, "title": {}, "description": { "3": {} } }], ["media", { "_index": 38, "title": {}, "description": { "3": {} } }], ["mode", { "_index": 25, "title": {}, "description": { "2": {} } }], ["namespac", { "_index": 1, "title": {}, "description": { "0": {}, "2": {} } }], ["need", { "_index": 19, "title": {}, "description": { "2": {} } }], ["objectid", { "_index": 52, "title": {}, "description": { "3": {} } }], ["obtain", { "_index": 40, "title": {}, "description": { "3": {} } }], ["payload", { "_index": 47, "title": {}, "description": { "3": {} } }], ["play", { "_index": 23, "title": {}, "description": { "2": {} } }], ["playback", { "_index": 6, "title": { "2": {} }, "description": { "2": {} } }], ["playbackaction\":\"play", { "_index": 56, "title": {}, "description": { "3": {} } }], ["playbackerror", { "_index": 34, "title": {}, "description": { "2": {} } }], ["playbackloc", { "_index": 59, "title": {}, "description": { "3": {} } }], ["playmod", { "_index": 57, "title": {}, "description": { "3": {} } }], ["polici", { "_index": 29, "title": {}, "description": { "2": {} } }], ["queue", { "_index": 45, "title": {}, "description": { "3": {} } }], ["repeat", { "_index": 26, "title": {}, "description": { "2": {}, "3": {} } }], ["replac", { "_index": 43, "title": {}, "description": { "3": {} } }], ["respons", { "_index": 35, "title": {}, "description": { "2": {} } }], ["return", { "_index": 32, "title": {}, "description": { "2": {} } }], ["servic", { "_index": 42, "title": {}, "description": { "3": {} } }], ["serviceid", { "_index": 54, "title": {}, "description": { "3": {} } }], ["shuffl", { "_index": 27, "title": {}, "description": { "2": {} } }], ["spotify:album:2qggol5vsqhphudtobs7zk", { "_index": 53, "title": {}, "description": { "3": {} } }], ["state", { "_index": 16, "title": {}, "description": { "2": {} } }], ["tracknumb", { "_index": 60, "title": {}, "description": { "3": {} } }], ["transport", { "_index": 15, "title": {}, "description": { "2": {} } }], ["true", { "_index": 58, "title": {}, "description": { "3": {} } }], ["type", { "_index": 49, "title": {}, "description": { "3": {} } }], ["us", { "_index": 11, "title": {}, "description": { "2": {} } }], ["wish", { "_index": 13, "title": {}, "description": { "2": {} } }]], "pipeline": [] } }, "options": {} }; var container = document.getElementById('redoc'); Redoc.hydrate(__redoc_state, container);