---
title: "getPlaybackStatus"
method: GET
path: "/groups/{groupId}/playback"
tags: ["playback"]
---

# getPlaybackStatus

`GET /groups/{groupId}/playback`

Use the getPlaybackStatus command in the playback namespace get the current playback status (transport state) for the group, such as PLAYBACK_STATE_IDLE, PLAYBACK_STATE_BUFFERING, or PLAYBACK_STATE_PLAYING. See the playbackStatus object for details.

## Response `200`

See the x-muse-error-codes extension for a list of muse errors that generate this response

- PlaybackStatus — The playbackStatus type in the playback namespace indicates changes to the group playback state, such as idle, buffering, paused, or playing, and the current playback position in the track. If the audio source is a cloud queue, this event also provides information about the cloud queue source, like the queueVersion and the current item’s itemId. It also can provide playback policies and modes. This object type can be a response to a command or an asynchronous event sent to apps subscribed to the playback namespace. The initial state of a group after startup is PLAYBACK_STATE_IDLE. When a user starts playing audio on a group, it transitions to PLAYBACK_STATE_BUFFERING and PLAYBACK_STATE_PLAYING, or it may skip the buffering state and go straight to playing. Depending on the audio source, pausing playback may cause the group to go to either PLAYBACK_STATE_PAUSED or PLAYBACK_STATE_IDLE. For example, streaming audio sources, such as Internet radio stations, will be in PLAYBACK_STATE_IDLE when paused. A group can also transition to PLAYBACK_STATE_IDLE after a playback error occurs. Your app will only be notified of changes to the current track position that result from any user action to seek to a new track position, a new track starting or the last track ending, or a playback error. If a track is playing normally on a group, your app will not receive playbackStatus events while the track position progresses without errors. If your app has a progress bar, you should update it with a local timer when playing normally. You will receive the item ID and offset position for the current item as well as for the previous item. For example, when a user skips from one track to another, you’ll receive the previousItemId and previousPositionMillis for the previous track, as well as the itemId and positionMillis for the currently playing track. If the user pauses the currently playing track, the previous track and position will be the same as the currently playing track and position. If the user seeks within the same track, the previous track will be the same as the currently playing track, but the position will be different.
  - `playbackState` 'PLAYBACK_STATE_IDLE' | 'PLAYBACK_STATE_BUFFERING' | 'PLAYBACK_STATE_PAUSED' | 'PLAYBACK_STATE_PLAYING', required — No description available
  - `isDucking` boolean — A snapshot of the player volume ducking state. When the player is ducked, it lowers the volume of one stream so that another can play over it at a louder volume. A value of true means that the player is currently ducked. A value of false means that the player is not ducked. This attribute does not generate new playbackStatus events.
  - `queueVersion` string, nullable — The last queue version change identifier. This version will contextually mean different things depending on which type of queue is supporting the current playback. If the active queue doesn't support versioning (and is opaque to users/clients) then this field will be omitted. If the public/shared queue is currently active, then this is an increasing integer that changes every time an add, edit, or remove track of any kind occurs to that queue's contents. If a Cloud Queue is currently active, this could have been from: * the last GET /itemWindow or GET /version response. * a loadCloudQueue or skipToItem response. This is omitted when the value is unknown, for example, if the CQ server did not respond to a query.
  - `itemId` string, nullable — The item identifier of the current track, if the audio source is a cloud queue.
  - `positionMillis` integer, nullable — The offset position within the current track in milliseconds.
  - `previousItemId` string, nullable — The ID of the item prior to a playback state change. This indicates what was playing when an action triggered the playbackStatus event.
  - `previousPositionMillis` integer, nullable — The last position in the previous item.
  - `playModes` PlayMode — This argument only applies to content that uses the shared queue. If playModes.shuffle is null or omitted, the current shuffle mode of the player will be retained and respected. If playModes.shuffle is true, the new tracks will be shuffled when added to the shared queue. The shared queue's shuffle mode will be turned on if it is not already on. If playModes.shuffle is false, the shuffle mode on the player will be turned off and the tracks will be added in their normal order. This applies for each of the play modes individually, which are not mutually exclusive with each other.
    - `repeat` boolean, nullable — 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.
    - `repeatOne` boolean, nullable — 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.
    - `shuffle` boolean, nullable — Play the tracks in the queue in a randomly shuffled order.
    - `crossfade` boolean, nullable — 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.
  - `availablePlaybackActions` PlaybackAction — The player reports available playback actions in the playbackAction object. The player calculates the available playback actions using playback policies set for the content as well as the content type. Some of the playback actions correlate to playback polices. But some are related to content type. For example, users cannot skip content on live radio stations. Content partners cannot customize canStop or canPause, so they are not listed on the playback policies page.
    - `canPlay` boolean — If true, the user has content that can be resumed or started with a play action. This property is useful to discern if play commands are allowed, especially in edge cases when the queue is empty.
    - `canSkip` boolean — If true, the user can skip the content. If false, the user cannot.
    - `canSkipBack` boolean — If true, the user can skip to the previous item. If false, the user cannot. Deprecated as of v1.36.0. Use canSkipToPrevious instead.
    - `canSkipToPrevious` boolean — If true, the user can skip to the previous item. If false, the user cannot. Replaces canSkipBack as of v1.36.0. Use the combination of canSeek logically OR'd with canSkipToPrevious to determine whether to call the skipBack command.
    - `canSeek` boolean — If true, the user can seek within the content. If false, the user cannot. Use the combination of canSeek logically OR'd with canSkipToPrevious to determine whether to call the skipBack command.
    - `canPause` boolean — If true, the user can pause the content and resume it later. If false, the user cannot.
    - `canStop` boolean — If true, the user can stop the content. If false, the user cannot.
    - `canRepeat` boolean — If true, the user can repeat the content. If false, the user cannot.
    - `canRepeatOne` boolean — If true, the user can repeat the same content over and over again. If false, the user cannot.
    - `canCrossfade` boolean — If true, the user can crossfade previous and successive items with the current content if with the crossfade setting. If false, the user cannot.
    - `canShuffle` boolean — If true, the user can shuffle the content. If false, the user cannot.

## Other responses

- `400` — The given resource/object identifier is invalid
- `401` — A client has not provided authorization credentials to perform a command
- `403` — A client does not have the correct permissions to perform a command
- `404` — See the x-muse-error-codes extension for a list of muse errors that generate this response
- `499` — Indicates there was an error occurred when performing a command
- `500` — Sonos has experience an unexpected condition it is unable to recover from
- `503` — Player is unable to reach the service.

---

[API](https://skmtc.net/sonos/apis/authorization-api.md) · [All operations](https://skmtc.net/sonos/apis/authorization-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sonos/authorization-api/versions/243132628620/schema)
